微服务相关

http://blog.csdn.net/u013970991/article/details/73195907

其中微服务的数据去中心化核心要点是:

  • 每个微服务有自己私有的数据库持久化业务数据。
  • 每个微服务只能访问自己的数据库,而不能访问其它服务的数据库。
  • 某些业务场景下,需要在一个事务中更新多个数据库。这种情况也不能直接访问其它微服务的数据库,而是通过对于微服务进行操作。
  • 数据的去中心化,进一步降低了微服务之间的耦合度。

这里写图片描述


1、以前团队一共就10个人只负责一二个项目,现在突然增加到平均每人维护二三个项目,上线还是采用由运维手工打war包上线,如果有修改的配置文件,则运维同学一台一台的进行修改,不仅容易上线出错,而且每次上线都会搞到半夜。

2、根据上面提到的数据去中心化原则,数据库拆分出来了,一个服务一个数据库实例,但是对后台统计系统来说就是恶梦,数据库拆分出来了统计工作、报表工作该怎么办呢?这部分工作还做不做呢?有人说可以分开统计啊,一个库一个库的来,可是这样的工作量将是巨大的。

3、机房的双活问题,对于金融公司来说双活还是很关键的一项技术指标,对于应用双活来说,其实还是比较容易实现,但是对于数据库来说确是一个技术问题了,对于oracle数据库来说,用oracle官方提供的OGG(Oracle GoldenGate)来进行数据同步的话,根据论坛上面查看的资料可以看出,OGG坑非常多,而且也容易丢数据,更重要的是。。。采用oracle的logminer来进行同步,同步的数据将不是实时的,会有一定延时而且在定时读取方面的工作上还需要自己进行开发,采用oracle的DataGuard也只能做主从同步,却不能做主主双活。于是通过调研过后,最终还是决定自己独立开发。

4、使用Dubbo或者Spring cloud就是微服务了吗?好吧,使用了Dubbo以后发现还有非常多的工作需要做,Dubbo只是一个服务治理框架而已,还需要开发分布式调用监控系统、统一配置管理中心,统一定时调度,还要在每个服务中做防重幂等,还要做并发限流,缓存也要根据不同的服务做隔离等等工作。。。

那我们用Spring cloud做一个大一统的整合可以吗?于是看到Spring cloud原来有这些坑啊:

  • 注册IP问题

早期的Spring Cloud Eureka在注册获取网卡IP时,不能区分外网网卡和内网网卡,如果安装了虚拟机和docker也不能区分虚拟网卡,每次启动注册的IP都有可能不一样,如果要注册为外网网卡IP,那运行带宽就不够,这个bug应该说是比较严重的问题,因此重写了网卡IP获取的逻辑来解决,同时也反馈给了spring cloud团队,再后期的版本中添加了网卡接口排序和通过名称过滤的功能来得到解决。

  • HealthCheck的问题

在一些极小概率的情况下,会导致Eureka Server 下线微服务实例,出现“Remote status from Eureka server is down”的问题,即便是重启微服务也无济于事,不过已经有码友在spring cloud 官方github贴出了解决方法的issue。

  • Feign使用不当带来的性能问题

其他的小坑也就忍了,大坑却不能。。。。于是去各大社区讨论发现原来大家都对Cloud的不少组件进行了二次封装。。。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
微服务相关的技术点包括但不限于以下几个方面: 1. 服务拆分与架构设计:将单一的应用程序拆分成多个独立的服务,每个服务负责一个特定的业务功能,通过定义清晰的接口进行通信。 2. 服务注册与发现:通过服务注册中心来管理和维护各个微服务的地址和元数据信息,使得微服务能够自动注册和发现其他服务。 3. 负载均衡:通过负载均衡算法,将请求均匀地分发到多个实例上,提高系统的性能和可伸缩性。 4. 断路器:通过断路器模式,实现服务的容错处理,当某个服务出现故障或响应时间过长时,可以快速失败或返回预设的默认值,避免级联故障。 5. API 网关:作为微服务架构的入口,对外提供统一的 API 接口,处理请求路由、安全认证、请求限流、日志记录等功能。 6. 分布式事务:处理多个微服务之间的事务一致性问题,确保数据的完整性和准确性。 7. 服务监控与日志:通过监控和日志记录来实时追踪和分析微服务的运行状态,包括服务调用次数、响应时间、错误率等指标。 8. 容器化与编排:使用容器技术如Docker来打包和隔离微服务,通过容器编排工具如Kubernetes来管理和部署多个容器化的微服务。 9. 高可用与容灾:通过部署多个实例、使用负载均衡、数据备份等机制来实现系统的高可用性和容灾能力。 10. 自动化部署与持续集成/持续交付:采用自动化工具和流程,实现微服务的快速部署、自动化测试和持续集成/持续交付,提高开发效率和产品发布速度。 以上列举的是微服务架构中常见的技术点,根据具体的需求和场景,可能还会涉及其他技术和工具。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值