Java EE

这12张手绘图,让我彻底搞懂了微服务架构!

放肆的年华 提交于 2021-02-17 07:08:10
作者:tengshe789 juejin.im/post/5c0ba2bef265da614d08fefe 微服务的概念最早在 2012 年提出,在 Martin Fowler 的大力推广下,微服务在 2014 年后得到了大力发展。 今天我们通过一组手绘图来梳理下微服务的核心架构。 什么是微服务? 微服务 Microservices 之父,马丁.福勒,对微服务大概的概述如下: 就目前而言,对于微服务业界并没有一个统一的、标准的定义(While there is no precise definition of this architectural style ) 。 但通常在其而言,微服务架构是一种架构模式或者说是一种架构风格,它提倡将单一应用程序划分成一组小的服务,每个服务运行独立的自己的进程中,服务之间互相协调、互相配合,为用户提供最终价值。 服务之间采用轻量级的通信机制互相沟通(通常是基于 HTTP 的 RESTful API ) 。 每个服务都围绕着具体业务进行构建,并且能够被独立地部署到生产环境、类生产环境等。 另外,应尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言、工具对其进行构建,可以有一个非常轻量级的集中式管理来协调这些服务。 可以使用不同的语言来编写服务,也可以使用不同的数据存储。 根据马丁.福勒的描述

这12张手绘图,让我彻底搞懂了微服务架构!

…衆ロ難τιáo~ 提交于 2021-02-17 07:07:38
点击上方 “ Java专栏 ”, 选择“置顶或者星标” 第一时间阅读精彩文章! 1、☞ 程序员进阶必备资源免费送「21种技术方向!」 点击查看☜ 2、☞ 《Java面试手册》.PDF 点击查看 作者:tengshe789 juejin.im/post/5c0ba2bef265da614d08fefe 微服务的概念最早在 2012 年提出,在 Martin Fowler 的大力推广下,微服务在 2014 年后得到了大力发展。 今天我们通过一组手绘图来梳理下微服务的核心架构。 什么是微服务? 微服务 Microservices 之父,马丁.福勒,对微服务大概的概述如下: 就目前而言,对于微服务业界并没有一个统一的、标准的定义(While there is no precise definition of this architectural style ) 。 但通常在其而言,微服务架构是一种架构模式或者说是一种架构风格,它提倡将单一应用程序划分成一组小的服务,每个服务运行独立的自己的进程中,服务之间互相协调、互相配合,为用户提供最终价值。 服务之间采用轻量级的通信机制互相沟通(通常是基于 HTTP 的 RESTful API ) 。 每个服务都围绕着具体业务进行构建,并且能够被独立地部署到生产环境、类生产环境等。 另外,应尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言

spring boot学习01【搭建环境、创建第一个spring boot项目】

折月煮酒 提交于 2021-02-17 04:21:13
1、给eclipse安装spring boot插件 Eclipse中安装Spring工具套件(STS): Help -> Eclipse Marketplace... 在Search标签或者Popular标签中,选择Spring Tool Suite插件,安装: 点击install进行插件的安装,该过程会自动下载安装包进行安装,待所有的包下载完成之后点击下一步(confirm) 选择同意之后条约之后,点击finish,在安装的过程中如果弹出警告提示时一直点击install anyway即可,待所有包安装完成之后点击restart Now 重新启动eclipse,插件安装步骤完成。 2、创建一个spring boot项目 在创建spring boot项目的向导下完善一下内容: 在选择java版本的时候应该确认本机的安装的java版本 运行 --cmd --- java -version查看安装的java jdk的版本 完成如上步骤点击next 进行如下配置:选择spring boot的版本 添加一个web的依赖,该依赖会自动导入Tomcat服务器等相关的包,在Acaliable输入web进行筛选,勾选web下面的web选项,点击finish。至此我们已经成功创建一个新的spring boot项目。 创建好的spring boot项目的如下: 3、如何部署项目、如何创建一个控制器

java几种常见的编码

梦想与她 提交于 2021-02-17 00:58:52
几种常见的编码格式 为什么要编码 不知道大家有没有想过一个问题,那就是为什么要编码?我们能不能不编码? 要回答这个问题必须要回到计算机是如何表示我们人类能够理解的符号的,这些符号也就是我们人类使用的语言。 由于人类的语言有太多,因而表示这些语言的符号太多,无法用计算机中一个基本的存储单元—— byte 来表示,因而必须要经过拆分或一些翻译工作,才能让计算机能理解。我们可以把计算机能够理解的语言假定为英语,其它语言要能够在计算机中使用必须经过一次翻译,把它翻译成英语。这个翻译的过程就是编码。 所以可以想象只要不是说英语的国家要能够使用计算机就必须要经过编码。这看起来有些霸道,但是这就是现状,这也和我们国家现在在大力推广汉语一样,希望其它国家都会说汉语,以后其它的语言都翻译成汉语,我们可以把计算机中存储信息的最小单位改成汉字,这样我们就不存在编码问题了。 所以总的来说,编码的原因可以总结为: 计算机中存储信息的最小单元是一个字节 即 8 个 bit,所以能表示的字符范围是 0~255 个 人类要表示的符号太多,无法用一个字节来完全表示 要解决这个矛盾必须需要一个新的数据结构 char,从 char 到 byte 必须编码 如何“翻译” 明白了各种语言需要交流,经过翻译是必要的,那又如何来翻译呢? 计算中提拱了多种翻译方式,常见的有 ASCII、ISO-8859-1、GB2312、GBK

MyBatis 自定义 typeHandler

五迷三道 提交于 2021-02-16 19:45:21
自定义typeHandler 对于自定义typeHandler来说,需要在配置文件中注册typeHandlers 然后需要实现TypeHandler接口, 一个例子 首先编写调度的处理类 package com.ming.MyBatis; import org.apache.ibatis.type.JdbcType; import org.apache.ibatis.type.TypeHandler; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import java.sql.CallableStatement; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class StringTypeHandler implements TypeHandler<String> { private static Logger logger = LogManager.getLogger(); /** * 对预编译的Sql语句进行设置的时候, * @param ps * @param i * @param parameter

java超大文件上传

倾然丶 夕夏残阳落幕 提交于 2021-02-16 17:20:18
上周遇到这样一个问题,客户上传高清视频(1G以上)的时候上传失败。 一开始以为是session过期或者文件大小受系统限制,导致的错误。 查看了系统的配置文件没有看到文件大小限制, web.xml中seesiontimeout是30,我把它改成了120。 但还是不行,有时候10分钟就崩了。 同事说,可能是客户这里服务器网络波动导致网络连接断开,我觉得有点道理。 但是我在本地测试的时候发觉上传也失败,网络原因排除。 看了日志,错误为: java.lang.OutOfMemoryError Java heap space 上传文件代码如下: public static String uploadSingleFile(String path,MultipartFile file) { if (!file.isEmpty()) { byte[] bytes; try { bytes = file.getBytes(); // Create the file on server File serverFile = createServerFile(path,file.getOriginalFilename()); BufferedOutputStream stream = new BufferedOutputStream( new FileOutputStream(serverFile));

十月份复盘总结

China☆狼群 提交于 2021-02-16 16:55:05
十月份过的挺快的,这个月输入比较少,主要做了两件事情,一是刷了JavaScript 高级程序设计 五章 ;二是写了一个简单的JSP项目,实现了增删改查。庆幸的是这个月终于结课了,再也不用每天为了打卡而打卡而上课,一些课确实无聊,有的甚至以后用也不会上。我是喜欢留给自己大量的时间去做一件事情,并且没人打扰,这样才能静下心去学习。现在终于有大量的时间了,接下来的目标也很清晰了。 关于JSP 由于这学期课程学JSP,就不得不学这个了,这个在实际开发中应用的比较少了。至于为什么应用的少了,主要是因为它的开发方式有点落后了,前后端糅杂者一起写,在HTML中嵌入大量的Java代码,视图和业务逻辑不分离,以至后期项目不好维护。目前实际开发中采用的方式是 “ 前后分离”,前端只做渲染层, 后端只做接口服务 ,两者可同时进行开发,两者互不干扰,前端在做好页面的同时,可使用mock 创建假数据 模拟后端接口渲染。由于我是不喜欢听老师讲解,她讲课的时候,我总是干别的事情。下来自己研究去学习,看了书上的讲解,看了别人的写的源码就开始写 期末要 交的 JSP 小项目了,由于JSP 采用的JAVA 语言,Java 是 大一学习的,忘得差不多,一年没写java了,就这样踩坑的花了很多时间完成了。 下面我记录一下我学JSP遇到的坑: 开发环境 1.编译器: Eclipse 2.环 境: JSPStudy

request接收表单提交数据及其中文参数乱码问题

时光总嘲笑我的痴心妄想 提交于 2021-02-16 11:20:00
一、request接收表单提交数据: getParameter (String)方法 (常用) getParameterValues (String name)方法 (常用) getParameterMap()方法 (编写框架时常用) 比如现在有如下的form表单 1 <% @ page language = " java " import = " java.util.* " pageEncoding = " UTF-8 " %> 2 <! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" > 3 < html > 4 < head > 5 < title >Html的Form表单元素 </ title > 6 </ head > 7 < fieldset style ="width:500px;" > 8 < legend >Html的Form表单元素 </ legend > 9 <!-- form表单的action属性规定当提交表单时,向何处发送表单数据,method属性指明表单的提交方式,分为get和post,默认为get --> 10 < form action ="${pageContext.request.contextPath}/servlet/RequestDemo03" method =

停车场管理系统(ssh,mysql)

一曲冷凌霜 提交于 2021-02-16 10:48:42
停车场管理系统JAVA Mysql(毕业论文10929字,共47页,程序代码, MySQL 数据库) 【开发环境】 MyEclipse, IDEA JDK1.7(JDK1.8) Tomcat7(Tomcat8) 【技术栈】 JAVA, JSP, SSH, MYSQL, HTML, CSS, JAVASCRIPT, JQUERY 项目源码 【项目包含内容】 【文档包含内容】 【项目功能介绍】 停车场车位管理系统需要包括停车位预定及缴费功能、停车场车位位置及收费查询功能和系统设置及管理功能。 通过对停车场车位管理系统的调查研究,要求系统具有以下功能: 1. 登录模块:实现会员用户,后台管理人员两种角色的登录。 2. 普通用户模块:前台用户可以注册、登录、查看车位、预订车位、归还车位、投诉建议等。 3. 后台管理模块:管理员登录、添加车位类型、添加车位信息、用户管理、投诉建议管理。 【文档部分截图】 【项目运行截图】 : 来源: oschina 链接: https://my.oschina.net/u/3743971/blog/4311230

IntelliJ IDEA配置Tomcat和Lombok

♀尐吖头ヾ 提交于 2021-02-16 07:11:11
Tomcat的安装和配置 Tomcat 是在SUN公司的JSWDK(JavaServer Web DevelopmentKit)的基础上发展而来的一个优秀的Servlet容器,其本身完全是由Java编写的,是Apache开源软件组织的一个软件项目。 Tomcat除了能够充当运行Servlet的容器,还提供了作为Web服务器的一些实用功能(如:Tomcat的管理和控制平台、安全域管理和Tomcat阀等),并且具有运行稳定、可靠,效率高等特点,因此Tomcat已经成为目前开发企业JavaWeb应用的最佳Servlet容器选择之一。 首先打开Tomcat的官方网站http://tomcat.apache.org/,在左侧选择版本进行下载。 此处选择的是8.5.37版本,在下载完成后解压到了D:盘中。 打开idea,点击右上方的“Add Configuration…”: 点击左上方的“+”: 在弹出的下拉菜单中选中Tomcat Server->Local: 在Name中自定义一个名字,点击右侧的Application server的“Configure…”按钮: 再点击Tomcat Home右侧的文件夹图标: 在打开的界面中选择tomcat的解压目录即可。 下面的设置默认浏览器,推荐使用chrome: 在下面的url和端口等使用默认即可,点击“OK”。 添加完tomcat后