前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java web开发的那点事及最新技术整理

Java web开发的那点事及最新技术整理

作者头像
攻城狮的那点事
发布2019-06-28 16:42:03
1.9K0
发布2019-06-28 16:42:03
举报

今天继续前面的话题,说说Java web开发的那点事。Java语言一直作为软件行业的热门语言,近几年在国内各个语言开发占的比重如下:

如今的互联网时代,Java已占据了半壁江山。尤其大型互联网公司对Java开发人员的需求极大,也使得每年都有大批的人进入。但技术更新换代的又很快,好多在传统软件公司呆久了的Coder们,似乎已经与最新的技术脱节。所以要想在这个行业长期混的伙伴们,务必跟上技术更新的步伐。那目前都流行那些技术呢,我大概梳理梳理下吧!

后台服务端基础框架(目前分布式开发已成主流)

分布式治理:dubbo, Spring cloud

分布式协调服务:Zookeeper

消息服务:kafka

服务化框架: Springboot(微服务框架,已成主流), Spring MVC

持久层:Mybatis(使用居多)、Hibernate

项目构建:Maven

前端框架

原型:axure

Html方面:html5、jsp

CSS样式:css、bootstrap、less

JS相关:vue.js 、angular.js、jQuery.js、其它相关js插件

构建:node.js、npm、bower

数据库

关系数据库:mysql、oracle

非关系型数据库:mongdb

内存数据库:redis、memcache

其他

代码管理:git/github

Java开发工具:intellij idea

Android开发:android studio

IOS开发工具:xcode

现在主流的分布式开发,对做互联网的伙伴们应该已经不陌生了。那什么又是分布式呢?其实很简单,就是为了应对并发访问量大的网站,我们对用户界面、后端服务、数据库三个层面分别独立部署运行。甚至对后端服务器模块处理,每个模块独立部署运行。然后由多个子服务组件成后台服务系统。

例如:一个电商平台,为了应对高并发访问。我们把Web端做成静态的Html项目并部署在独立的Tomcat上。后端服务的Java项目里只放控制层(Controller)和业务层(Service),然后Web端跟后端服务通过API通信。然后我们后端的服务系统,再分成若干个子系统(如我们的项目,后端服务分为:系统模块,客户模块,商品模块,订单模块,运营模块,消息模块等近10个),每个模块都一个独立的项目(SpringBoot微服务),独立部署运行,而模块间通过TCP通信交互(Dubbo服务)。比如 订单模块 需要 客服模块 的数据,就通过Dubbo服务调用客户模块业务层服务获取相应信息。

而一般的传统项目,就是典型的MVC架构,把UI跟后端服务放到一个项目中。现在可能有小伙伴想问,那你后端都分模块独立部署了,登录API肯定是某一个子系统的,而客户登录成功后,其他子系统的服务器怎么获取客户的Session信息? 这是一个很好问题,也是面试官常问的问题(如何实现单点登录与Session共享 )。那到底怎么解决呢? 目前主流的方案都是引进第三方缓存服务策略,也就是专门搞一个缓存服务,然后把本该存在本地服务器上的Session,放到这个独立的缓存服务上去,目前最多最流行的第三方缓存服务就是Redis。当用户进行登录操作时,在系统服务子系统中生成token,然后用Token作为Key,客户实体作为Value存入Redis。然后当其他子系统需要登录用信息时,就拿着请求参数传进来的token, 到Redis上去找,这样就达到Session共享的作用。是不是很简单哦!

那可能有人还想问,你用Dubbo做模块间的数据通信,那你用Zookeeper做什么?其实Zookeeper的定义是用来做分布式环境的服务治理,这个又必要了解下Dubbo。

Dubbo是阿里为应对他们的庞大业务体系而出的分布式治理框架,它的结构分为:提供者(Provider)、消费者(Consumer)、注册中心(Registry)、监控中心(Monitor)。而Zookeeper在和Dubbo使用时,它就是所谓的注册中心(Registry),我们把服务提供者提供的服务注册到Zookeeper上去,然后有需要服务的消费者去注册中心上找。如果同一服务有多个提供者(也就是一个Dubbo服务应用启动了多次),这时就是一个服务集群,Zookeeper会对注册进来的提供者进行集群管理(其中一个作为Master,对其他的进行统一协调),有消费者需要服务时,Master会跟据当前集群里提供者的使用情况协调分配谁将提供服务。

看到这里,相信小伙伴们对分布式开发已经有了初步的认识和了解,今天就说这么多,如果想了解更多的分布式应用及涉及的技术,请关注我的公众号,我会继续分享更多的内容,与大家共同学习共同进步。

下期:继续分布式这个话题,以及Dubbo+Zookeeper,Redis,Springboot等开发应用。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-03-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 攻城狮的那点事 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档