微服务是继SOA后,最流行的服务架构风格之一。
按照微服务对系统进行拆分后,每个服务的业务逻辑都更加简单、清晰。服务之间是松耦合的,模块之间的边界也更加清晰。
微服务有效降低了软件项目的业务复杂程度,为小团队独立开发、持续交付和部署打下了良好的基础。
遗憾的是,微服务并不是银弹。与传统的单一架构相比,微服务架构对团队的组织架构、技术水平、运维能力等方面,都提出了更高的要求。如果没有掌握得当的方法而生搬硬套,微服务架构只会会适得其反--降低项目的开发效率,这是本书的创作初衷之一。
在国内外的技术社区中,比较推崇现有开源方案,如"Spring Cloud全家桶"或者阿里开源的"Dubbo"。上述框架通常已经实现了服务发现、配置、负载均衡、限流熔断,等微服务架构所必须的的核心功能。
使用开源框架省却了造轮子的过程,但也降低了我们学习、思考的欲望。
为什么需要服务发现,又如何实现它呢?配置中心呢....思考和设计的过程充满了挑战,也是提升自身架构能力的一种手段。这是本书的创作初衷之二。
已有的微服务资料过于重视微服务的开发,忽略了微服务赖以生存的生态系统:工具链、自动化运维。可以说,离开了这两点的支持,微服务架构将难以落地。完善这两方面的思考和实战,是本书的创作初衷之三。
为此,我撰写了这本《从0到1实战微服务架构》。让我们"暂时忘掉"已有的、成熟的开源解决方案。尝试亲自动手,实现微服务架构的各个模块。
我们会从微服务开发、工具链、运维这三个角度,阐述微服务架构的实战方案。
由于篇幅、精力所限,本书无法写成一本”零起点”教程。我假设读者具有至少2年的服务端工作经验,并且了解以下技术或原理:
Git
Maven & Gradle
Docker & k8s
Java
Spring / Spring Boot
数据库: 如MySQL
消息队列: 如RabbitMQ
缓存系统: 如Memcached
内存数据库: 如Redis
本书可以供架构师、项目经理、高级服务端程序员参考、学习。
动手实战是本书的核心内容,因此本书所涉及的全部代码,都托管到了我的Github上(以lmsia-开头的项目)。
这些代码以研讨为主要目的,也可以直接应用于生产,但本人不对其稳定性负责。
按照微服务对系统进行拆分后,每个服务的业务逻辑都更加简单、清晰。服务之间是松耦合的,模块之间的边界也更加清晰。
微服务有效降低了软件项目的业务复杂程度,为小团队独立开发、持续交付和部署打下了良好的基础。
遗憾的是,微服务并不是银弹。与传统的单一架构相比,微服务架构对团队的组织架构、技术水平、运维能力等方面,都提出了更高的要求。如果没有掌握得当的方法而生搬硬套,微服务架构只会会适得其反--降低项目的开发效率,这是本书的创作初衷之一。
在国内外的技术社区中,比较推崇现有开源方案,如"Spring Cloud全家桶"或者阿里开源的"Dubbo"。上述框架通常已经实现了服务发现、配置、负载均衡、限流熔断,等微服务架构所必须的的核心功能。
使用开源框架省却了造轮子的过程,但也降低了我们学习、思考的欲望。
为什么需要服务发现,又如何实现它呢?配置中心呢....思考和设计的过程充满了挑战,也是提升自身架构能力的一种手段。这是本书的创作初衷之二。
已有的微服务资料过于重视微服务的开发,忽略了微服务赖以生存的生态系统:工具链、自动化运维。可以说,离开了这两点的支持,微服务架构将难以落地。完善这两方面的思考和实战,是本书的创作初衷之三。
为此,我撰写了这本《从0到1实战微服务架构》。让我们"暂时忘掉"已有的、成熟的开源解决方案。尝试亲自动手,实现微服务架构的各个模块。
我们会从微服务开发、工具链、运维这三个角度,阐述微服务架构的实战方案。
由于篇幅、精力所限,本书无法写成一本”零起点”教程。我假设读者具有至少2年的服务端工作经验,并且了解以下技术或原理:
Git
Maven & Gradle
Docker & k8s
Java
Spring / Spring Boot
数据库: 如MySQL
消息队列: 如RabbitMQ
缓存系统: 如Memcached
内存数据库: 如Redis
本书可以供架构师、项目经理、高级服务端程序员参考、学习。
动手实战是本书的核心内容,因此本书所涉及的全部代码,都托管到了我的Github上(以lmsia-开头的项目)。
这些代码以研讨为主要目的,也可以直接应用于生产,但本人不对其稳定性负责。
2021年11月02日
2021年11月02日 minikube是入门Kubernetes的优秀工具。使用minikube,可以轻松地在本地运行Kuberntes的主要功能。
2021年11月02日 在前面的章节中,我们使用了Kubernetes和容器技术实现了微服务的发现、负载均衡、持续部署等需求。然而,我们并未提到Docker镜像的配置。默认的,我们使用了Docker官方默认的Docker镜像。然而在实际工作中,我们最好使用Docker私有仓库。
2021年11月02日 当业务刚刚起步的时候,微服务的稳定性是我们的首要保障目标,即服务能否稳定运行而不会挂掉。随着业务逐渐发展,用户数据量不断增大,并发的请求数也会不断加大。慢慢地,性能问题也会逐渐暴露出来。
2021年11月02日 在应用了Gradle构建工具,以及Maven仓库来管理版本依赖后,程序的构建、依赖问题已经得到了基本的解决。但随着项目的不断发展,一个微服务的依赖可能会越来越多,出现版本冲突的问题。
2021年11月02日
人工智能产品经理最佳实践
作者:柴春燕
作者:柴春燕
2021年11月05日 本章节将对人工智能产品经理所需要了解和掌握的数据架构做系统性的介绍。
本章节的目标:
1. 了解通用人工智能系统的数据架构
2. 熟悉人工智能与知识图谱的关系
3. 了解人工智能的知识模型
4. 熟悉典型人工智能产品的数据架构
希望能够通过以上四个问题,能够对人工智能数据架构有一个比较清晰的认识。接下来我们首先来看人工智能数据架构要解决的核心问题是什么。
作者:李俊兵
本章节的目标:
1. 了解通用人工智能系统的数据架构
2. 熟悉人工智能与知识图谱的关系
3. 了解人工智能的知识模型
4. 熟悉典型人工智能产品的数据架构
希望能够通过以上四个问题,能够对人工智能数据架构有一个比较清晰的认识。接下来我们首先来看人工智能数据架构要解决的核心问题是什么。
作者:李俊兵
2021年11月05日 本章节将对人工智能产品经理所需要了解和掌握的应用架构做系统性的介绍。
本章节的目标:
1. 了解通用人工智能系统的应用架构
2. 熟悉人工智能的服务端系统
3. 了解人工智能的C端系统
4. 熟悉典型人工智能产品的应用架构
希望能够通过以上四个问题,能够对人工智能应用架构有一个比较清晰的认识。接下来我们首先来看人工智能应用架构要解决的核心问题是什么。
作者:李俊兵
本章节的目标:
1. 了解通用人工智能系统的应用架构
2. 熟悉人工智能的服务端系统
3. 了解人工智能的C端系统
4. 熟悉典型人工智能产品的应用架构
希望能够通过以上四个问题,能够对人工智能应用架构有一个比较清晰的认识。接下来我们首先来看人工智能应用架构要解决的核心问题是什么。
作者:李俊兵
2021年11月05日 本章节将对人工智能产品经理所需要了解和掌握的技术架构做系统性的介绍。
本章节的目标:
1. 了解通用人工智能系统的技术架构
2. 熟悉人工智能的三大技术层次
3. 了解人工智能的关键技术
4. 熟悉典型人工智能产品的技术架构
希望能够通过以上四个问题,能够对人工智能技术架构有一个比较清晰的认识。接下来我们首先来看人工智能技术架构要解决的核心问题是什么。
作者:李俊兵
本章节的目标:
1. 了解通用人工智能系统的技术架构
2. 熟悉人工智能的三大技术层次
3. 了解人工智能的关键技术
4. 熟悉典型人工智能产品的技术架构
希望能够通过以上四个问题,能够对人工智能技术架构有一个比较清晰的认识。接下来我们首先来看人工智能技术架构要解决的核心问题是什么。
作者:李俊兵
2021年11月05日 本章节将对人工智能产品经理所需要了解和掌握的业务架构做系统性的介绍。
本章节的目标:
1. 了解通用人工智能系统的业务架构
2. 了解人工智能的三大业务能力
3. 了解人工智能的两大应用方向
4. 熟悉典型人工智能产品的业务架构
希望能够通过以上四个问题,能够对人工智能业务架构有一个比较清晰的认识。接下来我们首先来看人工智能业务架构要解决的核心问题是什么。
作者:李俊兵
本章节的目标:
1. 了解通用人工智能系统的业务架构
2. 了解人工智能的三大业务能力
3. 了解人工智能的两大应用方向
4. 熟悉典型人工智能产品的业务架构
希望能够通过以上四个问题,能够对人工智能业务架构有一个比较清晰的认识。接下来我们首先来看人工智能业务架构要解决的核心问题是什么。
作者:李俊兵
ThinkPHP是一个免费开源的,快速、简单的面向对象的轻量级PHP开发框架,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简代码的同时,更注重易用性。遵循Apache2开源许可协议发布,意味着你可以免费使用ThinkPHP,甚至允许把你基于ThinkPHP开发的应用开源或商业产品发布/销售。
ThinkPHP6.0基于精简核心和统一用法两大原则在5.1的基础上对底层架构做了进一步的优化改进,并更加规范化。由于引入了一些新特性,ThinkPHP6.0运行环境要求PHP7.1+,不支持5.1的无缝升级(官方给出了升级指导用于项目的升级参考)。
采用PHP7强类型(严格模式)
支持更多的PSR规范
多应用支持
ORM组件独立
改进的中间件机制
更强大和易用的查询
全新的事件系统
支持容器invoke回调
模板引擎组件独立
内部功能中间件化
SESSION机制改进
缓存及日志支持多通道
引入Filesystem组件
对Swoole以及协程支持改进
对IDE更加友好
统一和精简大量用法
版权申明
发布本资料须遵守开放出版许可协议 1.0 或者更新版本。
未经版权所有者明确授权,禁止发行本文档及其被实质上修改的版本。
未经版权所有者事先授权,禁止将此作品及其衍生作品以标准(纸质)书籍形式发行。
如果有兴趣再发行或再版本手册的全部或部分内容,不论修改过与否,或者有任何问题,请联系版权所有者 thinkphp@qq.com。
对ThinkPHP有任何疑问或者建议,请进入官方讨论区 [ http://www.thinkphp.cn/topic ] 发布相关讨论。
有关ThinkPHP项目及本文档的最新资料,请及时访问ThinkPHP项目主站 http://www.thinkphp.cn。
ThinkPHP6.0基于精简核心和统一用法两大原则在5.1的基础上对底层架构做了进一步的优化改进,并更加规范化。由于引入了一些新特性,ThinkPHP6.0运行环境要求PHP7.1+,不支持5.1的无缝升级(官方给出了升级指导用于项目的升级参考)。
采用PHP7强类型(严格模式)
支持更多的PSR规范
多应用支持
ORM组件独立
改进的中间件机制
更强大和易用的查询
全新的事件系统
支持容器invoke回调
模板引擎组件独立
内部功能中间件化
SESSION机制改进
缓存及日志支持多通道
引入Filesystem组件
对Swoole以及协程支持改进
对IDE更加友好
统一和精简大量用法
版权申明
发布本资料须遵守开放出版许可协议 1.0 或者更新版本。
未经版权所有者明确授权,禁止发行本文档及其被实质上修改的版本。
未经版权所有者事先授权,禁止将此作品及其衍生作品以标准(纸质)书籍形式发行。
如果有兴趣再发行或再版本手册的全部或部分内容,不论修改过与否,或者有任何问题,请联系版权所有者 thinkphp@qq.com。
对ThinkPHP有任何疑问或者建议,请进入官方讨论区 [ http://www.thinkphp.cn/topic ] 发布相关讨论。
有关ThinkPHP项目及本文档的最新资料,请及时访问ThinkPHP项目主站 http://www.thinkphp.cn。
2021年11月08日 新版的事件系统可以看成是5.1版本行为系统的升级版,事件系统相比行为系统强大的地方在于事件本身可以是一个类,并且可以更好的支持事件订阅者。
事件相比较中间件的优势是事件比中间件更加精准定位(或者说粒度更细),并且更适合一些业务场景的扩展。例如,我们通常会遇到用户注册或者登录后需要做一系列操作,通过事件系统可以做到不侵入原有代码完成登录的操作扩展,降低系统的耦合性的同时,也降低了BUG的可能性。
事件相比较中间件的优势是事件比中间件更加精准定位(或者说粒度更细),并且更适合一些业务场景的扩展。例如,我们通常会遇到用户注册或者登录后需要做一系列操作,通过事件系统可以做到不侵入原有代码完成登录的操作扩展,降低系统的耦合性的同时,也降低了BUG的可能性。
2021年11月08日 中间件主要用于拦截或过滤应用的HTTP请求,并进行必要的业务处理。
2021年11月08日 门面为容器中的(动态)类提供了一个静态调用接口,相比于传统的静态方法调用, 带来了更好的可测试性和扩展性,你可以为任何的非静态类库定义一个facade类。
2021年11月08日
2021年11月08日 ThinkPHP使用容器来更方便的管理类依赖及运行依赖注入,新版的容器支持PSR-11规范。
2021年11月08日
2021年11月08日
2021年11月08日 ThinkPHP6.0采用单一入口模式进行项目部署和访问,一个应用都有一个统一(但不一定是唯一)的入口。如果采用自动多应用部署的话,一个入口文件还可以自动对应多个应用。
2021年11月08日 ThinkPHP支持传统的MVC(Model-View-Controller)模式以及流行的MVVM(Model-View-ViewModel)模式的应用开发,下面的一些概念有必要做下了解,可能在后面的内容中经常会被提及。
2021年11月08日
前一页
后一页