动态伸缩, 根据流量增加或减少机器
灾备 ,如果宕机了
consul 获取所有rpc请求地址,并实时检测 (服务发现机制)
每个服务启动的时候,就会把所有服务注册到consul
为什么不用负载均衡,服务就几百个。consul 可以做自动选举。consul可以做集群。
consul 基于go语言,
consul 支持 共享配置中心,修改配置中心,相关的服务都修改了
只是部署docker 没什么用,具体什么业务呢?(docker,编排, 自动伸缩,怎么做微服务?持续的部署)
json格式的数据,用于服务注册和定期检查
为什么有java,php 开发迭代速度快,go结合php比较多,处理并发等。
lavarels laravel+swoole(千万pv)
亿级分布式架构。
rpcServer http_server 注册到容器
注释是给人看的,
注解是给程序看的,依赖注入是其中功能之一。灵活,针对控制器,方法。,配置路由,定时任务等。
协程 一部非阻塞,充分利用cpu资源,线程快速切换切换速度非常快。因为php程序会发生IO阻塞的,需要等待返回结果才能继续执行。
服务中间件 : 相当于是一个代理的作用,自己定义某些功能。
swoole IO密集型性能是传统环境的10倍 20倍。
与golang 性能差别 5%~10%
服务 根据服务名(可能不是一台机器) 请求 cusol (服务注册中心) 找到服务中心地址,然后去访问其他服务。心跳检测。
rpc 接口调用,服务治理,服务与服务之间的调用,性能,管理(熔断,降级)
swoft
安装框架,配置bean,启动
启动 注解扫描,放到容器中,事件机制,事件监听。
网关服务 ,商品服务,用户服务
网关服务 提供统一的入口,调用api管理。限流安全,提供Http服务,聚合后台服务
RPC 远程过程调用,像调用本地一样,调用远程。跨主机调用服务
商品服务 ,启动RPC服务
开始swoft RPC服务的一个讲解。。。。。。。。。。。
openresty基于nginx + lua 脚本高性能web平台。微服务的网关服务getway
lua 可以介入nginx的脚本文件。
还有一个可以做网关服务的 kong
可以做服务限流(redis,nginx+lua的令牌算法),聚合(一个请求请求2个地址)
熔断,比如支付需要用户服务,用户服务出了问题,那么一连串服务就全出问题了
4一段时间内,服务成功了多少次,恢复服务
----------------------------------------------------------
QPS10w一个redis 肯定是不行的,所以要做多级缓存, 缓存架构
redis 每秒读写 5W 4核8G的机器。 值越大,会越慢
nginx+lua 做分发层,接入层
nginx 分发策略,轮训,随机,最小连接数,加权