微服务不需要像普通服务那样成为一种独立的功能或者独立的资源. 定义中称, 微服务是需要与业务能力相匹配, 这种说法完全正确. 不幸的是, 仍然意味着, 如果能力模型粒度的设计是错误的, 那么, 我们就必须付出很多代价. 如果你阅读了 Fowler 的整篇文章, 你会发现, 其中的指导建议是非常实用的. 在决定将所有组件组合到一起时, 开发人员需要非常确信这些组件都会有所改变, 并且规模也会发生变化. 服务粒度越粗, 就越难以符合规定原则. 服务粒度越细, 就越能够灵活地降低变化和负载所带来的影响. 然而, 利弊之间的权衡过程是非常复杂的, 我们要在配置和资金模型的基础上考虑到基础设施的成本问题.
接下来结合我们的 k8s 进行对我们的微服务项目进行演示
启动副本本身是无状态的应用, 无需考虑服务是否带来的影响
扩容根据副本本身的模版再去创建新的副本
replicas 是整个副本的数量, 而不是在原基础的副本增加 3
- [[email protected] k8s]# kubectl scale --replicas=3 deployment stock -n ms
- deployment.extensions/stock scaled
- [[email protected] k8s]# kubectl get pod -n ms
- NAME READY STATUS RESTARTS AGE
- eureka-0 1/1 Running 0 21m
- eureka-1 1/1 Running 0 19m
- eureka-2 1/1 Running 0 18m
- gateway 1/1 Running 0 16m
- gateway 1/1 Running 0 16m
- order 1/1 Running 0 11m
- portal 1/1 Running 0 9m31s
- product 1/1 Running 0 11m
- stock 1/1 Running 0 6s
- stock 1/1 Running 0 11m
- stock 1/1 Running 0 6s
新功能上线模拟
在 product 这个模块下, 这里 - dev.YAML 是本地的一个测试环境, 修改某个功能比如, 那么我们就需要重新构建一下 jar 包, 比如修复 bug 或者添加代码, 我们就得重新构建镜像, 但是在 k8s 中我们只需要对某个模块进行构建就可以了, 无需再全部构建, 进入分支选择改动的模块, k8s 用新的镜像
[[email protected] simple-microservice-dev3]# VIM product-service/product-service-biz/src/main/resources/application-dev.YAML
开发把代码更新完之后, 提交到 Git,GitLab 仓库, 我们就需要 Git clone 拉取目标项目代码到本地
然后构建
- [[email protected] simple-microservice-dev3]# cd product-service/
- [[email protected] product-service]# ls
- pom.xml product-service-API product-service-biz
- [[email protected] product-service]# mvn clean package -D maven.test.skip=true
为什么可以在这个目录下也可以执行?
- [[email protected] product-service]# ls
- pom.xml product-service-API product-service-biz
因为这里有这个 pom.xml, 描述了所需的依赖包, 都在这里面定义的
然后推送到我们的 k8s 中, 执行这个脚本, 将会替换我们新的模块, 把新功能推送上去
微服务的新功能发布也不会影响前端等其他模块的使用
- [[email protected] k8s]# ./docker_build.sh product-service
- [[email protected] k8s]# kubectl get pod -n ms
- NAME READY STATUS RESTARTS AGE
- eureka-0 1/1 Running 0 70m
- eureka-1 1/1 Running 3 69m
- eureka-2 1/1 Running 3 68m
- gateway 1/1 Running 0 65m
- gateway 1/1 Running 0 65m
- order 1/1 Running 0 60m
- portal 1/1 Running 0 58m
- product 1/1 Running 0 115s
- stock 1/1 Running 0 61m
来源: http://www.bubuko.com/infodetail-3160062.html