体系化认识微服务之三:微服务总体技术架构
体系化认识微服务之三:微服务总体技术架构
这篇文章,介绍下微服务的总体架构体系,微服务拆分后涉及的服务众多,我们从一个全局的视角看下微服务架构涉及哪些方面。从上层到下层依次分为:接入层、网关、业务服务层、支撑服务层、平台服务层、基础设施层
技术构架总览:
接入层
接入层是入口,比如支付宝,接入层包括手机APP、Web、H5,是流量的入口,负责把外部的流量接入到系统的内部。
网关
...
体系化认识微服务之四:服务注册发现机制
服务调用者要在众多的微服务中调用具体的服务提供者,必然涉及到负载均衡的问题,根据负载均衡的实现可以分为集中式LB、进程内LB和独立进程LB。
集中式LB
LB上有所有的服务地址配置,当服务消费者调用某个服务的时候,LB会根据负载均衡策略(随机、轮询等)将请求转发到具体的服务上。此外,服务调用者还需要知道LB的地址,通常的做法是运维在服务器上配置一个DNS域名或者IP,这个域名指向LB。
...
Spring Boot学习案例开源项目
为了更好的学习并使用springboot进行开发,维护了一个springboot学习案例开源项目,涉及springboot从基础开发到企业实战,涵盖不同场景的开发案例。公司内部所有的服务都基于springboot进行开发以完成服务化。下面是本开源项目的部分截图:涉及的内容包括但不限于:
web开发
数据库mybatis使用(含多数据源配置)
缓存框架使用(caffeine、ehcache、redis
【Web】JavaWeb项目为什么我们要放弃jsp?为什么要前后端解耦?为什么要动静分离?
JavaWeb项目为什么我们要放弃jsp?为什么要前后端解耦?为什么要动静分离?
---------------------------------------------------
前戏:
以前的项目大多数都是Java程序猿又当爹又当妈,又搞前端(ajax/jQuery/js/html/css等等),又搞后端(java/MySQL/Oracle等等)。
【Web】JavaWeb项目为什么我们要放弃jsp?为什么要前后端解耦?为什么要前后端分离?2.0版,为分布式架构打基础。
前戏
前后端分离已成为互联网项目开发的业界标准使用方式,通过nginx+tomcat的方式(也可以中间加一个nodejs)有效的进行解耦,
并且前后端分离会为以后的大型分布式架构、弹性计算架构、微服务架构、多端化服务(多种客户端,例如:浏览器,车载终端,安卓,IOS等等)打下坚实的基础。
这个步骤是系统架构从猿进化成人的必经之路。
核心思想是前端html页面通过ajax调用
【IDEA】idea实现Mybatis Plugin插件安装破解及使用
Mybatis Plugin
一、Mybatis Plugin插件是什么
提供Mapper接口与配置文件中对应SQL的导航
编辑XML文件时自动补全
根据Mapper接口, 使用快捷键生成xml文件及SQL标签
ResultMap中的property支持自动补全,支持级联(属性A.属性B.属性C)
快捷键生成@Param注解
XML中编辑SQL时, 括
【编程语录】59条令人捧腹但真实的程序员编程语录
这些语录和软件开发维护、调试、软件bug、软件设计和文档、代码质量、测试和管理等相关。下面这59条编程语录虽然令人捧腹但也揭示了真相。只有真正的软件开发人员才能理解这些编程语录的价值。下面,开始吧……
软件开发人员和程序员语录
1.A good programmer is someone who always looks both ways before crossing a on
【Java】Java从网络读取图片并保存至本地
一、js代码:
代码如下:
/**
* 点击下载当前图片
*
*/
function downloadThisImage(obj){
var tid = $(obj).attr("file_tid");
var fileSrc = $(obj).parent().prev().attr("src");
window.location.href='../../file/
【Java】Java实现批量打包文件Zip下载
有这样一个需求,需要将某个文件夹进行下载,而且该文件下包含多张图片,图片是存储于Linux服务器上的。故采用zip打包方式进行下载。在此并没有采用获取网络图片的方式进行下载,而是找到图片在服务器上存储路径进行打包下载。废话不多说,直接上代码吧!!
1、页面功能如下图:
2、JS代码如下:
/**
* 点击下载当前文件夹
*
*/
function downloadFileI
【vueJs】windows下安装搭建vueJS开发环境
一、简介
Vue.js 是什么
Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的 渐进式框架。与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计。Vue 的核心库只关注视图层,并且非常容易学习,非常容易与其它库或已有项目整合。另一方面,Vue 完全有能力驱动采用单文件组件和Vue生态系统支持的库开发的复杂单页应用。
Vue.js 的目标是通过
【Java】SpringMVC实现多张图片上传实例
实现在Springmvc中上传图片功能很好实现。需求是将多张或单张图片上传至某个文件夹下,同时保存在数据库中和服务器上。现在我将会展现完整例子。
1、前提:在pom中添加相关的jar包。
commons-fileupload
commons-fileupload
1.3.2
2、SpringMVC 用的是 的MultipartFile来进行文件上传 所以我们首先要
【SpringMVC】SpringMVC获取配置文件信息
1、首先新建一个.properties的配置文件。如:config.properties
#file.acpath.server=c:/files
#file.acpath.views.server=c:/files/%s/%s?t=%s
server.file.acpath=
file.acpath.server=
file.acpath.views.server=
2、在applica
【zookeeper】Windows下zookeeper的安装配置
ZooKeeper是一个分布式开源框架,供了协调分布式应用的基本服务。这些天在使用DUBBO,由于开发环境是在windows环境下,需要能够先运行ZooKeeper,然后在此基础上实现服务的地址分配。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系
【JQuery】JQuery+JS实现点击左边, 右边出现相应的页面
一. 用iframe方法实现点击左边, 右边出现相应的页面。
我做一个后台, 而且他指出别人没有用iframe, 问我行不行。 只能说行。 没有在网上查看过多的资料, 某天晚上突然想起ajax 里面有一个load方法, 这个方法可以载入其他页面的内容。 于是有了灵感, 开始也只是尝试一下:
统计报表
进货报表
出货报表
毛利报表
【Spring Security实战系列】Spring Security实战(一)
一 概要
Spring Security,这是一种基于 Spring AOP 和 Servlet 过滤器的安全框架。它提供全面的安全性解决方案,同时在 Web 请求级和方法调用级处理身份确认和授权。
如何使用spring security,总共有四种用法,从简到深为:
1、不用数据库,全部数据写在配置文件,这个也是官方文档里面的demo;
2、使用数据库,根据spring securi
【Spring Security实战系列】Spring Security实战(二)
在Spring
Security实战(一),我把用户信息和权限信息放到了xml文件中,这是为了演示如何使用最小的配置就可以使用Spring Security,而实际开发中,用户信息和权限信息通常是被保存在数据库中的,为此Spring Security也提供了通过数据库获得用户权限信息的方式。本教程将讲解使用数据库管理用户权限。
一 引入相关的jar包
这个用的是mysql数据库和druid
【Spring Security实战系列】Spring Security实战(三)
Spring Security实战(二)中讲解了用Spring Security自带的默认数据库存储用户和权限的数据,但是Spring Security默认提供的表结构太过简单了,其实就算默认提供的表结构很复杂,也不一定能满足项目对用户信息和权限信息管理的要求。那么接下来就讲解如何自定义数据库实现对用户信息和权限信息的管理。
一 自定义表结构
这里还是用的mysql数据库,所以pom.xml文
【Spring Security实战系列】Spring Security实战(四)
在前面三个实战中,登陆页面都是用的Spring Security自己提供的,这明显不符合实际开发场景,同时也没有退出和注销按钮,因此在每次测试的时候都要通过关闭浏览器来注销达到清除session的效果。
一 自定义页面
login.jsp:
--%>
登陆
登陆失败
${session
【Spring Security实战系列】Spring Security实战(五)
在之前的几篇security教程中,资源和所对应的权限都是在xml中进行配置的,也就在http标签中配置intercept-url,试想要是配置的对象不多,那还好,但是平常实际开发中都往往是非常多的资源和权限对应,而且写在配置文件里面写改起来还得该源码配置文件,这显然是不好的。因此接下来,将用数据库管理资源和权限的对应关系。数据库还是接着之前的,用mysql数据库,因此也不用另外引入额外的jar包
【Spring Security实战系列】Spring Security实战(六)
这里接着上篇的自定义过滤器,这里主要的是配置自定义认证处理的过滤器,并加入到FilterChain的过程。在我们自己不在xml做特殊的配置情况下,security默认的做认证处理的过滤器为UsernamePasswordAuthenticationFilter,通过查看源码知道,做认证处理的方法为attemptAuthentication,这个方法的主要作用就是将用户输入的账号和密码,封装成一个U
今日推荐
周排行