自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 资源 (7)
  • 收藏
  • 关注

原创 P2P网络NAT穿透原理(打洞方案)

若通讯协议的内容中有IP地址的传递,如FTP协议,NAT在转换时还要把数据包内涉及协议地址交互的地方替换,否则协议就会出现地址混乱。NAT的内外网通讯双方不是平等的,允许内网机器主动发起连接访问外网,当NAT没有对应的地址转换映射表项时,会建立一个映射表项,数据包经过NAT地址转换后发送给外网的服务器,连接建立以后可双向传送数据,但却禁止反方向的主动访问:在没有对应地址映射表项情况下,不允许外网主动访问内网主机,因为没有对应的地址映射表项用于转换地址,外网发送的数据包会被丢弃。

2023-07-30 11:51:36 1268 2

原创 一个基于Spring Boot+Vue+Redis的物联网智能家居系统

平台简介若依是一套全部开源的快速开发平台,毫无保留给个人及企业免费使用。 前端采用Vue、Element UI。 后端采用Spring Boot、Spring Security、Redis & Jwt。 权限认证使用Jwt,支持多终端认证系统。 支持加载动态权限菜单,多方式轻松权限控制。 高效率开发,使用代码生成器可以一键生成前后端代码。 内置功能 用户管理:用户是系统操作者,该功能主要完成系统用户配置。 部门管理:配置系统组织机

2021-12-22 15:08:45 441

原创 Java9、10、11的新特性

Java 9Java 9 提供了超过150项新功能特性,包括备受期待的模块化系统、可交互的 REPL 工具,jshell,JDK 编译工具,Java 公共 API 和私有代码,以及安 全增强、扩展提升、性能管理改善等,下面介绍一些常用新特性。1. JDK 目录结构的改变JDK1.8及以前的目录JDK1.9目录2. 模块化系统Java 已经 发展超过 20 年(95 年最初发布),Java 和相关生态在不断丰富的同时也越来越暴露出一些问题:Java 运行环境的膨胀和臃肿,每次JVM启动的

2021-06-14 22:03:25 1449

转载 这也太简单了!!Zookeeper核心ZAB协议

ZAB协议是什么?ZAB 协议全称:Zookeeper Atomic Broadcast(Zookeeper 原子广播协议), 它保证Zookeeper 在主从系统架构下,集群中各个节点之间数据的一致性。保证数据一致性的分两种情况讨论,一种集群正常运行,一种集群不正常。Zookeeper集群正常运行时采用消息广播模式保证;Leader节点宕机情况下采用崩溃恢复模式,保证;消息广播消息广播,就是集群正常运行时接收客户端写请求,需要保证集群数据的一致。消息广播是一个原子广播协议,类似二阶段提交过程。

2021-03-29 11:24:06 136

原创 Zookeeper 的选举机制也不过如此!

Zookeeper 是一个分布式服务框架,主要是用来解决分布式应用中遇到的一些数据管理问题如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。我们可以简单把 Zookeeper 理解为分布式家庭的大管家,那么管家团队是如何选出Leader的呢?好奇吗,接下来带领大家一探究竟。人类选举的基本原理讲解 Zookeeper 选举过程前先来介绍一下人类的选举。我们每个人或多或少都经历过几次选举,在投票的过程中可能会遇到这样几种情况:情况1:自己和候选人熟,将票投给你认为能力强的那个人;情

2021-03-26 09:12:48 163

转载 处理 Exception 的几种实践,很优雅,被很多团队采纳!

在Java中处理异常并不是一个简单的事情。不仅仅初学者很难理解,即使一些有经验的开发者也需要花费很多时间来思考如何处理异常,包括需要处理哪些异常,怎样处理等等。这也是绝大多数开发团队都会制定一些规则来规范对异常处理的原因。而团队之间的这些规范往往是截然不同的。本文给出几个被很多团队使用的异常处理最佳实践。实践在Finally块中清理资源或者使用try-with-resource语句当使用类似InputStream这种需要使用后关闭的资源时,一个常见的错误就是在try块的最后关闭资源。public

2021-03-25 10:17:46 101

转载 面试再问你CAP、BASE 理论是什么?这篇文章仍甩给他!

作者:架构师小白, 来源:公众号-程序员虎哥前言什么是分布式事务?介绍这个之前,先了解下这几个问题事务是什么?本地事务是什么?分布式是什么?分布式事务是什么?事务是什么?完成某件事情,可能有多个参与者需要执行多个步骤,最终多个步骤要么全部成功,要么全部失败。举个栗子:支付宝上A给B转账100元,A账户扣100,B账户增加100,这就是一个事务,这个操作中要么都成功,要么都失败。事务的场景有很多,参与者也是多种多样。比如用户成功注册然后发送邮件,包含2个操作:向数据库插入用户.

2021-01-27 17:51:01 641

转载 特好用!!!8种分布式ID生成方法

前言业务量小于500W或数据容量小于2G的时候单独一个mysql即可提供服务,再大点的时候就进行读写分离也可以应付过来。但当主从同步也扛不住的时候就需要分表分库了,但分库分表后需要有一个唯一ID来标识一条数据,且这个唯一ID还必须有规则,能辅助我们解决分库分表的一些问题。数据库的自增ID显然不能满足需求;特别一点的如订单、优惠券也都需要有唯一ID做标识。此时一个能够生成全局唯一ID的系统是非常必要的,那么这个全局唯一ID就叫分布式ID。分布式ID需满足那些条件全局唯一:基本要求就是必须保证ID是全

2021-01-26 09:02:07 381

转载 面试Java后端开发总结心得,很走心的文章(附面试题)

在上周,我密集面试了若干位Java后端的候选人,工作经验在3到5年间。我的标准其实不复杂:第一能干活,第二Java基础要好,第三最好熟悉些分布式框架。我相信其它公司招初级开发时,应该也照着这个标准来面的。我也知道,不少候选人能力其实不差,但面试时没准备或不会说,这样的人可能在进团队干活后确实能达到期望,但可能就无法通过面试,但面试官总是只根据面试情况来判断。但现实情况是,大多数人可能面试前没准备,或准备方法不得当。要知道,我们平时干活更偏重于业务,不可能大量接触到算法,数据结构,底层代码这类面试必问

2021-01-23 11:24:49 471 1

原创 女朋友也能看懂的Zookeeper分布式锁原理

介绍许多场景中,数据一致性是一个比较重要的话题,在单机环境中,我们可以通过Java提供的并发API来解决;而在分布式环境(会遇到网络故障、消息重复、消息丢失等各种问题)下要复杂得多,比如电商的库存扣减,秒杀活动,集群定时任务执行等需要进程互斥的场景。本文主要探讨如何利用Zookeeper来实现分布式锁,对比了一些其他方案分布式锁的优缺点。至于使用何种,要因自己的业务场景去决定,没有绝对的方案。分布式锁是什么?分布式锁是控制分布式系统之间同步访问共享资源的一种方式。实现分布式锁注意点:锁的可重入性

2021-01-22 15:34:28 198

转载 灵魂发问!线程池到底创建多少线程比较合理?

虽然线程池的模型被剖析的非常清晰,但是如何最高性能地使用线程池一直是一个令人纠结的问题,其中最主要的问题就是如何决定线程池的大小。这篇文章会以量化测试的方式分析:何种情况线程池应该使用多少线程数。计算密集型任务与IO密集型任务大多数刚接触线程池的人会认为有一个准确的值作为线程数能让线程池适用在程序的各个地方。然而大多数情况下并没有放之四海而皆准的值,很多时候我们要根据任务类型来决定线程池大小以达到最佳性能。计算密集型任务以CPU计算为主,这个过程中会涉及到一些内存数据的存取(速度明显快于IO),执行任

2021-01-21 17:30:13 898

转载 为什么牛逼的程序员都不用 “ ! = null “ 做判空?

问题为了避免空指针调用,我们经常会看到这样的语句...if(someobject!=null){someobject.doCalc();}...最终,项目中会存在大量判空代码,多么丑陋繁冗!如何避免这种情况?我们是否滥用了判空呢?精华回答这是初、中级程序猿经常会遇到的问题。他们总喜欢在方法中返回null,因此,在调用这些方法时,也不得不去判空。另外,也许受此习惯影响,他们总潜意识地认为,所有的返回都是不可信任的,为了保护自己程序,就加了大量的判空。...

2021-01-20 14:29:55 102

转载 浅谈Mybatis的一级缓存和二级缓存

MyBatis的缓存机制缓存的引入当我们大量执行重复的查询SQL语句的时候,会频繁的和数据库进行通信,会增加查询时间等影响用户体验的问题,可以通过缓存,以降低网络流量,使网站加载速度更快.MyBatis的一级缓存默认情况下,MyBatis只启用了本地的会话缓存,它仅仅对一个会话中的数据进行缓存。这也就是大家常说的MyBatis一级缓存,一级缓存的作用域是SqlSession。第1种情况:同个session进行两次相同查询代码验证 //测试一级缓存 @Test

2020-11-24 14:06:49 1038

转载 [转]Java校招入职华为,半年后我跑路了

0 前言全是干货的技术殿堂文章收录在我的 GitHub 仓库,欢迎Star/fork:Java-Interview-Tutorialhttps://github.com/Wasabi1234/Java-Interview-Tutorial1 何来?我,一个双非本科弟弟,有幸在 19 届的秋招中得到前东家华为(以下简称 hw)的赏识,当时秋招签订就业协议,当时 18 年1...

2020-03-23 17:44:43 1001

转载 ThreadPoolExecutor最佳实践--如何选择线程数

去年的一篇《ThreadPoolExecutor详解》大致讲了ThreadPoolExecutor内部的代码实现。总结一下,主要有以下四点:当有任务提交的时候,会创建核心线程去执行任务(即使有核心线程空闲仍会创建); 当核心线程数达到corePoolSize时,后续提交的都会进BlockingQueue中排队; 当BlockingQueue满了(offer失败),就会创建临时线程(临时...

2020-01-20 13:58:25 1394

原创 Maven依赖详解

本篇目标:通过讲解maven依赖范围、传递性依赖、可选依赖、依赖调节,让大家知道maven依赖的正确使用姿势是什么。什么是依赖范围Java在进行代码编译和运行的时候都分别需要指定classpath路径,不然将会出现找不到对应的类。同样的maven默认提供了编译主代码时、测试代码时、运行时的3套classpath。而依赖范围就是用来控制该jar应该被引入哪一个classpath中,maven...

2019-06-09 19:40:04 652

原创 ThreadPoolExecutor入门级

是什么JUC包下提供的一个线程池工具类。它帮我们解决了2个主要问题:当需要执行大量异步任务的时候合理、有效的复用线程资源,防止多个任务创建多个线程资源。能够有效限制和管理线程资源,比如控制初始化线程的数量,动态新增线程数等。实现原理本篇我们主要围绕它的核心设计思想讲解,不追踪源码。JUC包下提供了Excutors工厂类,让我们快速便捷的实例化ThreadPoolExecutor,但更...

2019-05-06 13:59:33 496

原创 Redis入门篇(2)- 奇淫技巧

慢查询许多的存储系统都提供了慢查询的配置,来帮助开发和运维排查线上哪些指令执行的时间耗时过长导致系统响应过慢。同样的Redis也不逊色,也提供了类似慢查询指令的配置。Redis主要提供了两个配置属性slowlog-log-slower-than和slowlog-max-len,来配置慢查询指令的记录规则。slowlog-log-slower-than设置指令执行时间的阀值,如果超过该时...

2019-05-06 13:57:56 568

原创 Redis入门篇(1)-类型技能

字符串首先Redis数据存储都会以key value 的形式进行存放, 所有的key都是字符串类型。此处所说的类型特指的是value中存放的类型。下文所讲的hash、列表都是基于value上进行讲解的。Redis会根据传入字符串类型规则进行判断,并采取相应的内部编码进行存储。数值型会采用8个字节的长整型进行编码存储,小于等于39个字节的字符串采用emstr编码存储,大于39字节的字符串采用raw...

2019-05-06 13:56:32 527

原创 ReentrantReadWriteLock入门级

是什么解决线程安全我们用ReentrantLock就可以了,但是对于读多写少的情况下我们继续使用它会有损性能,因为在没有写但有持续读数据的情况下,加锁是没有必要的,所以ReentrantReadWriteLock为了解决这个问题应运而生,它满足这样的规则:读读共享、读写互斥、写写互斥。更进一步的解释,它内部维护了两种锁即写锁和读锁。在没有线程获取写锁的时候,多个线程可以同时获取读锁。如果有线程获...

2019-04-22 16:09:18 428

原创 ReentrantLock入门级

是什么synchronized关键词功能一致,让线程保持同步。synchronized是基于Java语法上的实现,而ReentrantLock是基于API实现,操作上相对灵活。JDK1.7 之后 两者的性能上不分秋色。ReentrantLock实现了Lock接口,我们来看看那Lock几个主要接口定义:/**当前线程尝试获取独占锁,如果发现锁已被其他线程占用将被挂起。**/void loc...

2019-04-18 20:30:10 532

原创 LockSupport工具类-入门级

是什么LockSupport 是JDK内部提供阻塞和唤醒线程的工具类。void park()方法如果线程未获得许可证的前提下,调用了park方法将进行阻塞,否则不会阻塞直接返回。void unpark(Thread thread) 方法当某线程调用unpark(Thread thread) 方法时,传入方法中对应的线程将会获得许可证。void parkNanos(lo...

2019-04-14 16:12:30 271

原创 (6)并发编程高级篇-CopyOnWriteArrayList

介绍java并发包中的并发List只有CopyOnWriteArrayList,CopyOnWriteArrayList的修改操作底层都是通过拷贝一份数组进行的。使用ReentrantLock独占锁来保证多线程并发下只有一个线程进行修改操作,下面我们通过源码分析来逐步了解。初始化方法 /** * Creates an empty list. */ public...

2019-02-21 16:02:47 1168

原创 (5)并发编程高级篇-AtomicLong、LongAdder、LongAccumlator

Java的JUC包下提供了很多的原子性操作类,都是通过非阻塞的CAS操作来实现的,相比于用锁的方式来实现原子性操作上性能有较大的提升,本篇主要着重讲解简单的AtomicLong类以及JDK1.8新增的LongAdder、LongAccumulator类,至于其他的类都大同小异,明白其原理去理解其他的并不难。AtomicLong类原子性操作类的底层都是用Unsafe类进行实现的,我们看下面的At...

2019-02-21 11:21:32 625

原创 (4)Java并发编程高级篇-ThreadLocalRandom类

ThreadLocalRandom 类Random 类的局限性每个Random实例中都存有一个原子性的种子变量,每当获取随机数时会根据当前种子变量的值计算出新的种子变量。在多线程的情况下,操作单个Random实例时,多个线程会同时竞争原子性种子变量的更新操作,且只能有一个成功。未成功的线程将会执行自旋操作继续尝试。在高并发的场景下,这种方式有损性能,所以ThreadLocalRandom应运而...

2019-02-20 15:42:11 542

原创 (3)Java并发编程基础篇

乐观锁与悲观锁乐观锁和悲观锁是在数据库中引入的名词,在java的并发包锁中也有类似的概念所以这边我们也有必要提及以下。悲观锁悲观锁指在外界对数据进行修改的时候,它都持悲观的态度,认为数据都会被其他人进行修改,所以在获取、修改记录之前都会对记录进行加锁操作。下面看一个典型的例子:public void updateAction(Integer id){## 开启事务line1 : T...

2019-02-20 11:49:11 465

原创 (2)Java并发编程基础篇

什么是多线程并发编程并发指在同一时间段内多个任务执行,而并行指单位时间内多个任务执行。同一时间段内由多个单位时间组成,所以并发的多个任务不一定在单位时间内同时执行。并发强调的是同一时间段。为什么要进行多线程并发编程多核CPU时代的到来有效解决了单核CPU的困扰,线程各自使用自己的CPU运行,减少了线程上下文切换的资源开销,但随着大数据时代的来临,系统逐渐对性能和吞吐的要求提高,需要对高并发编...

2019-02-19 15:33:06 559 1

原创 (1)Java并发编程基础篇

什么是线程CPU调度的最基本单位。线程创建与运行线程的创建有三种方式 通过继承Thread类覆盖run方法 实现runnable接口 实现Callable接口,此方式能够获取任务执行完毕的返回结果 线程通知与等待 wait方法 当一个线程调用共享变量的wait函数时,该线程会阻塞挂起并释放共享变量的锁. 线程的唤醒需由其他线程通过调用共享变量...

2019-02-19 10:02:14 476

转载 Gitlab CI yaml官方配置文件翻译

通过 .gitlab-ci.yml配置任务git仓库:https://github.com/Fennay/git...此文档用于描述.gitlab-ci.yml语法,.gitlab-ci.yml文件被用来管理项目的runner 任务。如果想要快速的了解GitLab CI ,可查看快速引导。.gitlab-ci.yml从7.12版本开始,GitLab CI使用YAML文件(.git...

2018-12-27 13:04:38 347

转载 AQS结构及原理分析

AQS介绍AQS,即AbstractQueuedSynchronizer, 队列同步器,它是Java并发用来构建锁和其他同步组件的基础框架。来看下同步组件对AQS的使用:AQS是一个抽象类,主是是以继承的方式使用。AQS本身是没有实现任何同步接口的,它仅仅只是定义了同步状态的获取和释放的方法来供自定义的同步组件的使用。从图中可以看出,在java的同步组件中,AQS的子类(Sync等)一...

2018-09-06 17:29:31 349

转载 RocketMQ事务处理方案

先讨论一下什么是事务消息以及支持事务消息的必要性。我们以一个转帐的场景为例来说明这个问题:Bob向Smith转账100块。在单机环境下,执行事务的情况,大概是下面这个样子:单机环境下转账事务示意图当用户增长到一定程度,Bob和Smith的账户及余额信息已经不在同一台服务器上了,那么上面的流程就变成了这样:集群环境下转账事务示意图这时候你会发现,同样是一个转账的业务,在集...

2018-08-24 18:09:34 752

转载 Java泛型上界通配符 和下界通配符 的区别

题主说的<? extends T>和<? super T>是Java泛型中的“通配符(Wildcards)”和“边界(Bounds)”的概念。<? extends T>:是指 “上界通配符(Upper Bounds Wildcards)” <? super T>:是指 “下界通配符(Lower Bounds Wildcards)”1. 为什么...

2018-08-17 14:57:12 1874

转载 MySQL索引背后的数据结构及算法原理

原文:http://blog.codinglabs.org/articles/theory-of-mysql-index.html?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io  如有侵权请及时联系 摘要本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL...

2018-08-15 15:04:36 146

转载 UML序列图总结

▶ 序列图主要用于展示对象之间交互的顺序。        序列图将交互关系表示为一个二维图。纵向是时间轴,时间沿竖线向下延伸。横向轴代表了在协作中各独立对象的类元角色。类元角色用生命线表示。当对象存在时,角色用一条虚线表示,当对象的过程处于激活状态时,生命线是一个双道线。消息用从一个对象的生命线到另一个对象生命线的箭头表示。箭头以时间顺序在图中从上到下排列。• 序列图中涉及的元素:① 生命线:  ...

2018-07-01 15:00:24 183

翻译 Hadoop集群搭建(英文官网翻译)

以下仅是译者,抽出闲暇时间进行翻译,由于本身能力有限,难免会有译错或者误解原作者意思。还请大家互相指正,互相学习。共同翻译Hadoop官网,一起遨游技术知识的海洋。走进-->原文英文官网目的这个文档描述了如何用千台的节点来安装和配置Hadoop集群,如果你仅仅是为了体验尝试下Hadoop,你可以在单台的机器上去安装它(具体参看Single Node Setup)这个文档没有涵盖一些高级的主题...

2018-04-14 20:49:34 1993

原创 Hadoop文件的存储格式

sequence文件存储格式txt纯文本格式,若干行记录。默认用字符编码存储SequenceFile格式(顺序文件格式,可进行切割)key-value 格式进行存储,最终形成的是一个二进制文件, 需用hadoop提供的api进行写入存储。编写 写入 seq文件案例。 Configuration configuration = new Configuration(); configu...

2018-04-01 13:48:07 5372

原创 nexus私服的使用+项目的发布

nexus的安装下载nexus 地址:http://download.csdn.net/detail/javamrzhang/9907629将G:\DevelopmentTools\nexus-2.0.3-bundle\nexus-2.0.3\bin 该路径配置到环境变量中,(此路径要参照你下载后放置的路径)打开文件”G:\DevelopmentTools\nexus-2.0.3-bundle

2017-07-22 23:28:13 668

原创 (8)设计模式之装饰模式(结构型模式)

声明:以下都是博主浅薄的经验之谈,欢迎大家学习交流 博主是参考这个视频进行学习总结的,如阅读不懂可参看本视频哦! 设计模式学习视频(点击我) 提取码 : ivtk 使用场景我们在做系统设计的时候,一个非常重要的工作就是把大系统进行逐一的分解在分解。譬如用户管理模块、支付模块,但是每一个模块的某些业务功能都是通用。如在执行业务方法之前需进行这个操作:记录业务方法的操作日志

2017-07-02 17:08:19 435

原创 (7)设计模式之代理模式(结构型模式)-静态代理

声明:以下都是博主浅薄的经验之谈,欢迎大家学习交流 博主是参考这个视频进行学习总结的,如阅读不懂可参看本视频哦! 设计模式学习视频(点击我) 提取码 : ivtk Main.java/** * 静态代理 */public class Main {public static void main(String[] args) { //1.Store的代理对象

2017-06-20 15:35:17 391

原创 (6)设计模式之策略模式(结构型模式)

声明:以下都是博主浅薄的经验之谈,欢迎大家学习交流 博主是参考这个视频进行学习总结的,如阅读不懂可参看本视频哦! 设计模式学习视频(点击我) 提取码 : ivtk 需求1【获取某公司中年龄小于 35 的员工信息】Main.javapublic class Main{public static void main(String[] args){/**1、模拟员工数据*

2017-05-25 10:33:36 488

jvm性能调优+内存模型+虚拟机

jvm性能调优+内存模型+虚拟机 jvm性能调优+内存模型+虚拟机 jvm性能调优+内存模型+虚拟机

2018-02-13

深入理解Java虚拟机:JVM高级特性与最佳实践【视频资源】

深入理解Java虚拟机 JVM 性能调优 深入理解Java虚拟机 JVM 性能调优 深入理解Java虚拟机 JVM 性能调优 深入理解Java虚拟机 JVM 性能调优

2018-01-13

老男孩 MySQL DBA视频教程

16-第十六部-老男孩MySQL业务变更流程与安全管理思想(7节) 15-第十五部-老男孩MySQL数据库优化思想与优化实战(9节) 14-第十四部-老男孩MySQL高可用综合实现实战(22节) 13-第十三部-老男孩MySQL高可用工具drbd实战(18节) 12-第十二部-老男孩MySQL高可用工具heartbeat实战(33节) 11-第十一部 MySQL读写分离实现及MMM高可用分享(暂无) 10-第十部-老男孩MySQL常用引擎及优缺点-应用场景-调优详解(14节) 09-第九部-老男孩MySQL服务日志详细介绍及增量恢复命令实践(7节) 08-第八部-老男孩MySQL备份与恢复实战案例及生产方案(10节) 07-第七部-老男孩MySQL主从复制企业级深入高级应用实战(20节) 06-第六部-老男孩MySQL主从复制原理及实战部署(10节) 05-第五部-老男孩MySQL备份-增量备份及数据恢复基础实战(12节) 04-第四部-老男孩MySQL乱码问题及字符集实战(14节) 03-第三部-老男孩MySQL应用管理及进阶实战操作(29节) 02-第二部-老男孩MySQL多实例安装与企业应用场景(10节) 01-第一部-MySQL基础入门(21节)

2017-12-24

淘淘商城项目

项目简介:淘淘网上商城是一个综合性的B2C平台,类似京东商城、天猫商城。会员可以在商城浏览商品、下订单,以及参加各种活动。商家可以在入住淘 淘商城,在该平台上开店出售自己的商品,并且得到淘淘商城提供的可靠的服务。管理员、运营可以在平台后台管理系统中管理商品、订单、会员等。客服可以在后 台管理系统中处理用户的询问以及投诉。 开发技术:Spring、SpringMVC、Mybatis JSP、JSTL、jQuery、jQuery plugin、EasyUI、KindEditor(富文本编辑器)、CSS+DIV、freemarker Redis(缓存服务器) Lucene、Solr(搜索) httpclient(调用系统服务) Mysql MyCat mysql分布式集群解决方案 LVS+Nginx(web服务器) Quartz(定时任务) ActiveMQ(消息队列) Alibaba Dubbo服务接口集群 Fastdfs 分布式文件系统(图片服务器) 项目特色: 1、淘淘上传采用当前最流行的ssm(springmvc+spring+mybatis)框架开发,是当前电商网站首选的技术架构。 2、系统后台使用jsp+easyUI作为视图层,操作简便用户体验好,使用KindEditor作为富文本编辑器操作简便界面美观。 3、系统前台使用freemarker做静态化页面来提高系统的性能,以应对大规模的用户量的并发。 4、使用HttpClient以及Restful风格的接口来实现各个系统之间的相互通信。 5、使用Lvs+Nginx服务器来处理图片、静态页面以及系统之间的负载均衡,可以应付大并发的压力。 6、使用Redis集群做缓存服务器,提高系统的响应速度。 7、使用Solr集群提高商品信息的查询服务,提高系统的查询速度以及准确率,极大提高了用户体验。 8、使用FastDFS分布式文件系统作为图片服务器。实现图片的分布式存储。 9、使用Alibaba Dubbo作为SOA服务化治理方案的核心框架。系统之间使用ActiveMQ消息队列实现消息服务。 10、后台数据库采用mysql数据库,使用mycat作为中间件实现主从复制、分库分表以实现大数据量的存储,是当今电商行业主流解决方案。 11、整个项目采用最流行的Maven来管理项目,达到项目的标准化,易于项目的构建。 12、使用svn来管理项目的代码和文档。 13、使用hudson来管理项目开发过程中的持续集成。

2017-09-27

nexus-2.0.3

nexus安装包

2017-07-22

微信小程序视频教程

7.1创建反馈表单界面 6.3加入加载中的友好提示 6.2界面反馈提示 5.3小程序内容界面数据与后端对接 5.2小程序列表界面数据与后端对接 5.1小程序CMS后端接口开放 4.4创建CMS数据库模型和文章内容管理 4.3创建一个CMS功能插件 4.2系统整体功能介绍 4.1小程序CMS系统下载安装 3.5列表和内容界面美化 3.4实现内容详情界面 3.3实现文章列表界面 3.2为程序加入底部菜单导航 3.1加入文章列表和内容界面 2.4界面美化 2.3用变量替换界面里的固定文本 2.2编写关于我们布局界面 2.1创建项目 1.4微信WEB开发者工具安装 1.3CMS原型,我们的初期目标 1.2开发文档简读,了解全貌 1.1课程介绍,定个小目标

2017-01-15

微信小程序教程

7.1创建反馈表单界面 6.3加入加载中的友好提示 6.2界面反馈提示 5.3小程序内容界面数据与后端对接 5.2小程序列表界面数据与后端对接 5.1小程序CMS后端接口开放 4.4创建CMS数据库模型和文章内容管理 4.3创建一个CMS功能插件 4.2系统整体功能介绍 4.1小程序CMS系统下载安装 3.5列表和内容界面美化 3.4实现内容详情界面 3.3实现文章列表界面 3.2为程序加入底部菜单导航 3.1加入文章列表和内容界面 2.4界面美化 2.3用变量替换界面里的固定文本 2.2编写关于我们布局界面 2.1创建项目 1.4微信WEB开发者工具安装 1.3CMS原型,我们的初期目标 1.2开发文档简读,了解全貌 1.1课程介绍,定个小目标

2016-12-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除