首页>会议文档 >

丁雪丰 - Java生态圈与微服务_部分1

page:
丁雪丰 - Java生态圈与微服务_部分1
丁雪丰 - Java生态圈与微服务_部分1
丁雪丰 - Java生态圈与微服务_部分1
丁雪丰 - Java生态圈与微服务_部分1
丁雪丰 - Java生态圈与微服务_部分1
丁雪丰 - Java生态圈与微服务_部分1
丁雪丰 - Java生态圈与微服务_部分1
丁雪丰 - Java生态圈与微服务_部分1
丁雪丰 - Java生态圈与微服务_部分1
丁雪丰 - Java生态圈与微服务_部分1
丁雪丰 - Java生态圈与微服务_部分1
丁雪丰 - Java生态圈与微服务_部分1
丁雪丰 - Java生态圈与微服务_部分1
丁雪丰 - Java生态圈与微服务_部分1
丁雪丰 - Java生态圈与微服务_部分1
丁雪丰 - Java生态圈与微服务_部分1
丁雪丰 - Java生态圈与微服务_部分1
丁雪丰 - Java生态圈与微服务_部分1
丁雪丰 - Java生态圈与微服务_部分1
丁雪丰 - Java生态圈与微服务_部分1
丁雪丰 - Java生态圈与微服务_部分1
丁雪丰 - Java生态圈与微服务_部分1
丁雪丰 - Java生态圈与微服务_部分1
丁雪丰 - Java生态圈与微服务_部分1
丁雪丰 - Java生态圈与微服务_部分1
丁雪丰 - Java生态圈与微服务_部分1
丁雪丰 - Java生态圈与微服务_部分1
丁雪丰 - Java生态圈与微服务_部分1
丁雪丰 - Java生态圈与微服务_部分1
丁雪丰 - Java生态圈与微服务_部分1
丁雪丰 - Java生态圈与微服务_部分1
丁雪丰 - Java生态圈与微服务_部分1
丁雪丰 - Java生态圈与微服务_部分1
丁雪丰 - Java生态圈与微服务_部分1
丁雪丰 - Java生态圈与微服务_部分1
丁雪丰 - Java生态圈与微服务_部分1
丁雪丰 - Java生态圈与微服务_部分1
丁雪丰 - Java生态圈与微服务_部分1
丁雪丰 - Java生态圈与微服务_部分1
丁雪丰 - Java生态圈与微服务_部分1
丁雪丰 - Java生态圈与微服务_部分1
丁雪丰 - Java生态圈与微服务_部分1
丁雪丰 - Java生态圈与微服务_部分1
丁雪丰 - Java生态圈与微服务_部分1
丁雪丰 - Java生态圈与微服务_部分1
丁雪丰 - Java生态圈与微服务_部分1
丁雪丰 - Java生态圈与微服务_部分1
丁雪丰 - Java生态圈与微服务_部分1
丁雪丰 - Java生态圈与微服务_部分1
丁雪丰 - Java生态圈与微服务_部分1
丁雪丰 - Java生态圈与微服务_部分1
丁雪丰 - Java生态圈与微服务_部分1
丁雪丰 - Java生态圈与微服务_部分1
丁雪丰 - Java生态圈与微服务_部分1
丁雪丰 - Java生态圈与微服务_部分1
丁雪丰 - Java生态圈与微服务_部分1
丁雪丰 - Java生态圈与微服务_部分1
丁雪丰 - Java生态圈与微服务_部分1
丁雪丰 - Java生态圈与微服务_部分1
丁雪丰 - Java生态圈与微服务_部分1

丁雪丰 - Java生态圈与微服务_部分1

所属会议:2016 GIAC 全球互联网架构大会会议地点:北京


下载

手机看
活动家APP客户端

扫二维码下载
或点击下载
Android iOS

10637次
浏览次数
2016 GIAC 全球互联网架构大会所有文档 丁雪丰 - Java生态圈与微服务_部分2 百度 郑然 - 支撑百度搜索引擎可靠性99%服务发现的设计 Real world Rust 陈皓 - 代码编程中的编程范式_部分1 陈皓 - 代码编程中的编程范式_部分2 陈皓 - 代码编程中的编程范式_部分3 彭晟杰 - 知乎的微服务架构实践 朱雪寒 - ENJOY后端架构演进_部分1 朱雪寒 - ENJOY后端架构演进_部分2 贝贝网 郁佳杰 - 贝贝百亿级服务架构及可用性保障实践 李尊敬 - 全球互联网架构大会 高成 - 特卖电商供应链系统演进 李文哲 - AI and Big Data Drive Fin-tech Innovation 宜人贷 王婷 - 互联网金融风控中的数据科学 李汐 - 轻松筹众筹平台架构演进历程 宋传胜 - 91金融的后台服务架构 谢丹博 - 滴滴弹性云实践 白山云科技 陈闯 - 分布式对象存储面临的挑战 日志易 陈军 - 海量日志分析与智能运维 熊猫TV 杨武明 - 多机房弹幕系统架构 一直播 张华伟 - 高并发直播系统服务端架构设计与思考 学霸君 袁荣喜 - 高可用实时语音系统 映客直播 王振涛 - 映客直播服务端架构优化之路 360 陈宗志 - 360 redis 生态圈 阿里巴巴 王晶昱(沈询) - 阿里分布式数据库双十一实践 李大勇 - 京东青龙系统数据库架构演进 美团 翁宁龙 - 美团点评数据库运维自动化实践与发展 蚂蚁金服 杨志丰 - OceanBase架构演进和双11实践 李智慧 - 互联网高可用架构漫谈 曹建栋 - 内涵段子的稳定性建设 陈迪豪 - 小米深度学习平台_部分3 周小四 Ray Zhou - 企业应用云化架构设计 Yuming - BigDataInHulu 王守崑 - Bot 的场景化应用 王栋 - 从美团外卖看移动应用的流量场景细分_部分1 王栋 - 从美团外卖看移动应用的流量场景细分_部分2 王栋 - 从美团外卖看移动应用的流量场景细分_部分3 陈迪豪 - 小米深度学习平台_部分1 陈迪豪 - 小米深度学习平台_部分2 范冰 - 全球互联网架构大会_部分2 王守崑 - 人工智能:趋势 机会和思考 李笑来 - 未来是谁的天下 马全一 - ContainerOps - DevOps Orchestration The Container Orchestration on Mesos - Gilbert Song 邱剑 - 公有云里的容器 童剑 - API全生命周期管理 范冰 - 全球互联网架构大会_部分1

文档介绍

微服务是一个新兴的软件架构,就是把一个大型的单个应用程序和服务拆分为数十个的支持微服务。一个微服务的策略可以让工作变得更为简便,它可扩展单个组件而不是整个的应用程序堆栈,从而满足服务等级协议。而Java 技术具有卓越的通用性、高效性、平台移植性和安全性。当两者进行碰撞,又将会擦出怎样的火花?

演讲实录

Java老矣,尚能饭否?
Java诞生于1995年,1996年发布了1.0版本;2004年,发布量大更新1.5,并改为5.0;2014年,发布了Java8;2017年,发布Java9(根据OpenJDK官网,9月发布正式版)。
在TIOBE编程语言排行榜中,Java长期位居榜首,是2015年的年度编程语言。通过Google Trends,可以看到Java的搜索量远高于紧随其后的几门语言。
学习语言时,大家都会从HelloWorld写起,在Spring Boot的帮助下,Java也能通过几行代码写出一个HelloWorld的REST服务,比起目前流行的Go语言毫不逊色。
在平时的工作中,大家写的并非HelloWorld,大多数人都是在写业务逻辑,所以大家更关心语言本身的优势,以及它的工具链和生态环境。
微服务与语言
所谓微服务,就是一些协同工作的小而自治的服务,这里需要解释两点,首先是“一些”,微服务并非一个服务,而是几个相关服务的集合;其次是“小而自治”,服务要小,我们不鼓励大而全的服务。
微服务与语言两者间并没有什么必然的关系。微服务的好处就是可以带来微服务的异构性,用所有语言都可以写出合格的微服务。没有最好的语言,只有最合适的使用场景。
在我看来,微服务最应该关注的不是开发,也不是运维,而是如何设计微服务,业务上的设计远比代码上的实现来得重要。此时领域驱动设计就显得如此重要,先从领域模型入手,设计合理的服务,然后再来谈微服务落地。
微服务的落地需要考虑很多问题,比如服务的实现、如何开发、如何测试、服务的运维、可运维和高可用。
微服务与JAVA
进入微服务的落地环节之后,就要和语言有关了。比方说微服务该如何测试?微服务的服务提供方需要优雅地调用自己,而服务消费方要模拟提供方的反应。
如图是一个服务提供方的简单测试。
上图是消费者一端的测试。
在Java中可选择的代码质量工具还是有很多的,比如测试覆盖率工具、Mock工具、性能测试工具、持续集成工具以及代码扫描工具。这就是生态圈的强大。
另一方面,微服务也需要受到保护,比如服务的认证与授权。在一些场景下,开发和测试环境是相通的,测试环境的请求可能会跑到开发生产环境中去;甚至有些情况下整个集团的网都是通的。这时就需要做服务的认证与授权。
OAuth2.0可以用来提供各种服务授权,不仅对外也能对内。它的授权模式有授权码模式、简化模式、密码模式和客户端模式,在内部服务中一般会用客户端模式。
同样,Java的生态圈中还有很多安全相关的工具,比如安全框架、签名&摘要工具和加解密工具等等。
当服务的数量到达一定成都后,就需要考虑服务的发现与注册,Spring Cloud默认提供了Eureka作为注册中心,但同时也可以使用Consul,虽然Consul不是Java写的,但配合Spring Cloud Consul也很好用。类似的还有国内非常知名的Dubbo。
在Spring Boot和Spring Cloud的帮助下,我们可以很方便地了解到服务的运行情况,比如通过Hystrix实现服务降级:
通过Zipkin实现链路分析,配合标准化的日志,结合ELK等工具,能对信息做进一步的统一处理。
虽然Spring很强大,Spring Boot和Spring Cloud也红的发紫,加之Java庞大的生态圈,但也不要指望开源软件拿来就能用,在实际日常工作中,整合的工作是一定会有的,而且总会出现定制的需要。
总结
对于微服务而言,设计合理的业务模型很重要。
微服务与语言并没有太大的关系。
完整的生态环境能帮助你快速地将微服务落地。
我今天的分享就到这里,谢谢大家!

×

打开微信扫一扫,分享到朋友圈