- 博客(27)
- 资源 (1)
- 问答 (2)
- 收藏
- 关注
原创 产品需求的做与不做
又有的人说,就添加一个状态而已,我觉得很简单啊,就是1+2的基础上再加个3变成1+2+3而已,一眼就能看出答案。很多时候,他们随口说给某某对象加一个状态,就以为是界面上多一个状态的显示而已,他们不会深究加这个状态是否合理,加这个状态可能会导致所有的流程都要重新判断。2、做与不做(或者简单做和复杂做),两边都有道理, 哪一边都没有压倒性的优势,那就不要做了,做了往往是画蛇添足。所以,对于产品设计或者开发,可以扁平的扁平,可以简化的简化,不要过度分支、嵌套、增加影响全局的功能,这样反而把自己都套进去了。
2023-12-04 17:53:59
90
原创 微服务实战之春云与刀客(五)—— spring cloud与docker swarm集群
概述原文:https://yq.aliyun.com/articles/618389?spm=a2c4e.11155435.0.0.27093312htU8y5 docker swarm 是一个非常简单的docker 原生集群部署环境。在docker swarm 出来之前,要搭建一个docker 集群需要复杂的网络运维和配置能力,而docker swarm 把这一切都解放了。 简单来说呢,...
2018-08-09 10:20:52
2488
原创 用 easy-sync 同步mysql数据到elasticsearch
easy-sync简介这是一个通过读取 mysql binlog实现实时同步数据到elasticsearch的产品,操作比较简单,支持多个相同结构的分表同步,支持多个任务的配置和执行。另外当修改数据库结构后,重新索引的过程不会影响旧索引的执行,它是利用elasticsearch的别名机制,只有新索引都同步完毕后才会替换旧索引。系统架构项目下载https://github...
2018-08-09 10:18:34
933
1
原创 Easy Task —— 强大易用的分布式任务调度平台
Easy Task 概述github:https://github.com/cehome-com/easy-task 简单易用的分布式任务调度平台。来源于淘宝彩票调度平台,并先后在淘宝内容抓取平台和铁甲二手机任务调度平台中使用,目前重构并开源。具有如下特点: - 去中心化。 - 支持上百台不同业务的应用服务器接入。任务在每个应用上独立执行,充分利用应用本身资源。 - 故障转移。应用如有多台执
2018-02-09 09:55:11
5301
原创 微服务实战之春云与刀客(三)—— 面向接口调用代码结构实例
概述在上一篇中提到了spring cloud 面向接口调用的开发风格,这一篇会举一个简单的但完整的例子来说明整个代码结构。 代码已上传到 https://github.com/maruixiang/spring-cloud-demo/tree/master/demo1代码结构整个代码在demo1目录下面,包含了一个根级的parent pom文件和三个maven应用。 - 根pom文件:所有应用的
2018-01-04 15:42:41
359
原创 微服务实战之春云与刀客(二)—— Spring cloud 实现仿RPC面向接口调用方式
概述像HSF、dubbo这种RPC框架,客户端都是通过接口(Interface)调用服务的,无须自己拼装调用方式,客户端就像调用本地类方法一样。而spring cloud原生的客户端调用时通过RestTemplate发起Http调用请求,需要手动指定URL和参数,在使用上比较费劲,后来出现了申明式服务调用——Spring Cloud Feign,终于使调用得到了解放,而本文就是讲述如何极致地利用Fe
2018-01-04 15:41:54
8421
原创 微服务实战之春云与刀客(一)—— 微服务开篇
春云即spring cloud ,刀客即docker,这种翻译似乎比较好玩! 这里是春云与刀客不得不说的故事,不会讲太多的入门,更多的是实战和一些规范,以及通过春云和刀客如何简化微服务开发,这些在一些书籍都是没有介绍的。本篇讲微服务概念和技术选型。什么是微服务(Microservice)通常别人问这个问题都不知道如何回答。其实很简单,按字面拆解就是,微服务就是: 微小的服务。 什么是微小?就是
2018-01-04 15:40:09
637
原创 spring 文件上传原理 (在非spring环境中可以使用)
前提是必须引入spring相关jar包。 importorg.springframework.web.multipart.MultipartFile;importorg.springframework.web.multipart.MultipartHttpServletRequest;importorg.springframework.web.multipart.commons.C
2012-08-08 18:19:33
5963
原创 如何判断Unix操作系统是32位还是64位?
Linux #uname -a 显示结果包含_64的就是64位的。 1 SMP Fri May 23 22:26:05 EDT 2008 i6i686 i386 GNU/Linux 1 SMP Fri May 23 22:26:05 EDT 2008 i686 i386 x86_64 x86_64 x86_64 GNU/Linux AIX #bootinfo -K
2008-10-28 18:48:00
1730
原创 Solaris 10 下安装apache2.26
Solaris 10 操作系统本身就装有apache2.0.59,主目录在usr/apache2,配置文件在etc/apache2,但是发现和weblogic的插件不能协同工作(原因未明,可能是apache版本、或者安装目录比较分散造成的?),最后是安装新的apache2.2.6才解决问题。步骤如下: 1) 下载介质。为了避免安装出现的麻烦,不采用编译源码的方式来安装,而是直接去
2008-10-28 09:48:00
3854
原创 Java 和 JavaScript 之间真正通用的Base64编码
在开发Java Web应用的时候,可能会在服务器端用Java做Base64编码,而在客户端用JavaScript进行解码。这样就要求两边的Base64编码机制保持一致。 使用Base64编码,可能会碰到各种奇怪情况,甚至怀疑编码有bug。但实际上不是这样的。Base64理论上操作的对象不是字符串而是字节数组。它的原理就是把ASCII码的255个字符缩小到用64个来表示。具体就是原来三个字节用四
2008-09-11 15:14:00
11323
3
原创 傻瓜式的Java Web开发利器:Websharp
什么是Websharp? Websharp是众多Java Web开发技术中的一种,其核心是页面模板,它是一种通过模板引擎驱动模板来输出动态Web内容的技术。为什么要使用Websharp呢?因为它简单而高效。和Spring、Structs这些Java开发技术相比,Websharp算是比较轻量级的开发技术,但它的简单和开发效率会让你瞠目结舌。总的来说它有如下的特点: 简单 – 只要你熟悉HTML和
2008-09-08 01:24:00
3356
原创 Websharp 12 - 数据库操作
java主要通过JDBC来完成数据库操作。我们假设你已经熟悉了如何通过JDBC来连接数据库和对数据表进行操作。 Websharp中的数据库操作也是基于JDBC的,但它对JDBC进一步封装,例如提供了websharp.util.Database 和websharp.util.Dabaset两个类对数据库进行操作。 Database 类对java.sql.Connection 和java.sql.
2008-09-06 00:57:00
656
原创 Websharp 11 - 代码生成器
Websharp提供一项代码生成的功能。利用这项功能,可以根据模板生成代码框架,节省不少的开发时间。首先是设计好模板,然后生成代码框架,最后在代码框架里面填写数据即可。 示例 以“调色板”为例说明。页面显示结果如下图所示,左边是颜色名称,右边是实际的颜色。 1)创建模板文件colors.htm。定义了一个loop循环和一个Color变量。
2008-09-05 18:12:00
645
原创 Websharp 10 - Websharp Framework
在前面介绍的例子中,我们都是用Jsp作为Java代码的载体,这种方式很简单,但让人觉得有点别扭。Jsp本来就是一块显示HTML代码和Java代码的,而现在只有Java代码而没有HTML代码了,那么是否可以把全是Java代码的Jsp用纯Java类来实现呢?这就用到了Websharp Framework。这是一个简单的框架,其原理图如下: 当客户端的浏览器发起符合Websharp Fra
2008-08-31 02:17:00
642
原创 Websharp 9 - 流程控制
说到流程控制,我们就会想到分支、循环if 、else、for、while这些词语。任何一门编程语言都会包含这些功能。但Websharp的模板中却没有这些功能。有人就会抱怨,如果我要实现一些流程控制怎么办。 我们先来说模板中为什么不加入这些功能?其一就是为了是模板最简单化,模板最接近天然的HTML代码,也使模板最容易掌握,说白了就是一个HTML,你设计成什么样就是什么样。其二,我们把流程控制都放在
2008-08-31 00:23:00
559
原创 Websharp 8 - 国际化支持
国际化支持也叫多语言支持,它是通过资源文件来实现的。整个过程包含了创建资源文件、创建模板、编写代码三个步骤。 创建资源文件 资源文件必须满足如下要求: 1)资源文件可以随意命名,但必须放在Classpath所能搜索到的路径下,例如classes/demo/resource.ini。 2)资源文件必须是UTF-8编码的文件。这和java里面的resourcebundle、properites
2008-08-30 23:08:00
618
原创 Websharp 7 - 包含共用的模板
在页面设计的时候,有些内容可能是多个页面都包含的,例如多个页面都包含相同的页眉。对于这些内容,我们都希望提取出来成独立的文件,以便于以后发生修改的时候,只需要修改这个独立的文件,而不用每个页面都修改一遍。 Websharp模板也提供了类似的功能,它是通过{%@FileName%} 这种标签来表示的。类如main.htm里面要包含head.htm,可以在main.htm的HTML代码里面加入{%h
2008-08-30 18:11:00
530
原创 Websharp 6 - 模板文件的查找与加载
查找模板文件 在前面的例子中,模板文件都是和jsp文件放在同一个目录,在jsp文件中直接引用模板文件名即可,例如有模板文件a.htm,在WebSharp对象的第一个构造参数直接写“a.htm”即可: Websharp ws = new Websharp("a.htm", "", request, response); 实际上,模板文件的查找是按照如下顺序来进行的(以/test/a.htm
2008-08-30 01:38:00
573
原创 Websharp 5 - Websharp编程
Websharp原理 Websharp开发的过程是先设计页面模板,然后编写java代码,即模板设计好了,接下来的任务就是编程来调用它,把模板变量换成动态的内容。从模板设计一章中,我们知道了三种基本的模板元素:静态HTML、模板变量和模板块。我们也知道通过ValueNode来存储动态的内容。由于静态的HTML你不用关心,所以实际上Template DOM和ValueNode DOM之间的对应关系就
2008-08-30 00:54:00
751
原创 Websharp 4 - 元素介绍与模板设计
<!-- /* Font Definitions */ @font-face {font-family:wingdings; panose-1:5 0 0 0 0 0 0 0 0 0;}@font-face {font-family:宋体; panose-1:2 1 6 0 3 1 1 1 1 1;}@font-face {font-fami
2008-08-30 00:31:00
748
原创 Websharp 3 - 第二个例子:在列表框中显示数据
本例子通过Websharp在页面上动态地显示一个列表框,列表框里面包含几个人名。这里只是演示,人名从数组中得到,而实际项目开发中数据往往都是从数据库中读出来的. 这个例子会用到Websharp中的一个循环块元素(Loop Block Element)。不用担心,Websharp只有很少的几种元素,不需要花大时间去学习。 例子说明 现有人名Mike、John、Tom和Rose,希望在列表框中显示
2008-08-29 23:27:00
1062
原创 Websharp 2 - 第一个例子Hello World
关于下载和部署Websharp,请参考“Websharp 1 - Web Sharp介绍” 1. 创建一个Java Web项目(或者使用已有的Web项目)。 2. 创建模板页面hello.htm, 放到Web目录下面,包含如下的内容: {%Var%} 说明: {%Var%}有点像Jsp中的变量,在这里它叫模板变量。 3. 创建hello.jsp,和hello.ht
2008-08-29 17:31:00
666
原创 Websharp 1 - Websharp介绍
史上最简单的但又十分强大的web开发技术关于WebsharpWebsharp是一种WEB开发技术,它能够简单高效地开发Web应用。纵观当今WEB世界,WEB开发技术五花八门,都是运用各种理论和框架对简单的WEB进行层层的封装,使本来很是简单的WEB应用陷入了纯粹追求理论上完美的危机。很多WEB技术都鼓吹技术先进、体系完整和维护简单,但实际上你要花费很大的精力去学会使用它,你要学习一大堆
2008-08-29 16:54:00
1328
原创 java boolean 类型占用的内存
理论上 boolean 取值0,1,即1 bit(1/8 byte)就可以存储。但实际上却不是这样,它可能占用了1 byte,如00000001。而且jvm不同可能有不同的结果。 下面给出在sun jdk1.4.2下测试的代码,创建了10兆个boolean,然后查看任务管理器,发现内存增长了20兆,从而证明了一个boolean占用了2个字节的内存空间。 也就是说:在SUN 的jdk下面,boo
2008-08-21 18:19:00
1125
原创 WEB项目按页面链接授权的实现(原理与Java例子)
在Web项目开发中,用户管理授权是很重要的一部分,下面介绍如何通过页面链接来授权。 页面授权级别分为三级 权限验证可以分为三级: 不需要任何验证、仅需要登录验证、需要权限验证 。 对于第三级“需要权限验证”则需要落实到实际的权限中。权限的定义是根据系统的实际要求来设计的,例如我们一个简单新闻系统中只有两种权限:文章管理、系统管理 。而复杂的系统可以细分为“操作+资源=权限”,例如“
2008-08-21 02:38:00
3056
flink on yarn 如何在yarn 集群重启后自动恢复
2021-10-18
TA创建的收藏夹 TA关注的收藏夹
TA关注的人