`
skzr.org
  • 浏览: 365474 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

服务设计 谈论1

阅读更多
我一直觉得只有符合业务需要的缓存服务才能够成功!
设计时考虑越一般化越通用的 越有可能失败

所以设计你的专业缓存服务吧!

前一段时间的思考:
设计一个缓存服务器(tomcat+spring(http remote invoker)),利用memecached做缓存!
所有档案和采集数据的访问通过此服务器访问!

对上层应用提供一个接口包提供业务服务!

客户服务器:web 2台:32G内存,2CPU(1CPU=4 core ,8个逻辑单元)

Stone() 10:49:21
对上层应用提供一个接口包提供业务服务!
我们目前也是这样干的撒

大蜜蕊(305132968) 10:50:22
老实说,我想设计的是一个档案按关系型数据库存储!
个性化的档案数据key-value;
对于采集上来的数据10年不变,直接存文件或者数据库表都可以

参考了NOSQL的部分思想
大菠萝( 10:50:33
大蜜蕊,问一下你上面说的设计是不是不能支持事务?

大蜜蕊() 10:51:16
我一直觉得只有符合业务需要的缓存服务才能够成功!
设计时考虑越一般化越通用的 越有可能失败

所以设计你的专业缓存服务吧!

大蜜蕊() 10:51:46
所以我的档案数据使用关系型数据库保证事物!
存在幻读可能

Stone() 10:52:24
我们倒是没必要搞的那么复杂
只是取出数据,给一些接口用于访问和存取缓存数据就可以了
大蜜蕊() 10:52:33
我觉得事务问题,可以专门问题专门调整服务实现,即可规避
大菠萝() 10:52:36
恩,memcached和关系数据库一起使用,事务支持是个问题
大阿汪<> 10:52:47
remote的性能会差的多
缓存还是要本地块
大蜜蕊() 10:53:04
大阿汪<>  10:52:47
remote的性能会差的多
缓存还是要本地块


现在看着WEB 32G内存,我们最多也就使用1.4G
大蜜蕊() 10:53:19
他们部署在同一个机器上
大菠萝() 10:53:16
remote缓存其实没有那么多的性能损耗
大蜜蕊() 10:53:34
而且注意是使用的localhost
大蜜蕊() 10:53:48
根本不会完全经过协议栈的
大菠萝() 10:54:23
localhost比写ip要快,是吗?
大阿汪<> 10:55:16
……
大蜜蕊() 10:55:23
localhost就是127.0.0.1
大菠萝() 10:55:52
机器actual ip
大蜜蕊() 10:55:59
Stone(16781578)  10:44:57
可能是设计的不够好
Stone(16781578)  10:47:37
因为数据类型的差异,某些东西无法去统一

针对这个问题,可以分开看:
区分类型:那些部分会变化、变化频度
再调整存储即可
Stone() 10:58:36
缓存很麻烦的就是查询,和写数据很难搞
大蜜蕊() 10:59:31
如果你对外提供服务,自己内部做查询呢
大蜜蕊() 10:59:40
或者直接使用NOSql
大蜜蕊() 11:00:19
NoSQL产品
大蜜蕊() 11:00:24
Apple = Service.getApple();
其他属性(生产地)
生产地 = Service.getAppleProp(Apple, 产地key);
Stone() 11:01:09
呵呵 是对外提供服务的饿
大蜜蕊() 11:01:31
至于查询,根据前面的原则,只设计面向业务的专有服务,不会完全支持通用的
大人兽(714524622) 11:02:14
顶一个
大蜜蕊() 11:02:15
List<> ret = Service.getApplesBy生产地(产地名,省份,地市等等);
大蜜蕊() 11:04:21
大家注意到没,各个所谓的NoSQL产品,他们只是在某个同类业务的方面才有成功的案例,而且所谓WEB2.0公司讲的成功的NOSQL应用都只说了产品
大蜜蕊() 11:04:50
实际上他们实际使用时都会做选择,那些使用那些不用!
大蜜蕊() 11:05:24
淘宝的开放平台,对外提供的服务,也是专有服务,么有提供类似的(X)QL给你使用吧!
大蜜蕊() 11:05:32
说完了
[Head First]Eko Hu<huecko@gmail.com> 11:06:05
google和亚马逊都用了noSQL吧
大蜜蕊() 11:06:23
这里我觉得思想很重要
大蜜蕊() 11:06:45
我对目前公司的数据分析后得出的一个方案雏形:

http://skzr-org.iteye.com/admin/blogs/774323
大蜜蕊() 11:07:39
http://skzr-org.iteye.com/blog/774323
大蜜蕊() 11:09:41
Stone()  10:52:24
我们倒是没必要搞的那么复杂
只是取出数据,给一些接口用于访问和存取缓存数据就可以了
大蜜蕊()  10:52:33
我觉得事务问题,可以专门问题专门调整服务实现,即可规避

根据CAP理论:
    * C: Consistency 一致性
    * A: Availability 可用性(指的是快速获取数据)
    * P: Tolerance of network Partition 分区容忍性(分布式)

同时一刻最多同时满足两个条件!
大蜜蕊() 11:10:19
所以为了事务也就是C,必然牺牲A或者P
大蜜蕊() 11:10:48
这就是说为什么要针对专门的业务应用采用专门的实现策略!
大蜜蕊() 11:12:11
以上是自己的一点思考,未在任何系统中实践过

欢迎大家拍我
大菠萝() 11:15:32
好多地方没太听懂。
从你博客上了解到的就是注重业务,而不是纠缠于数据库的增删改查上。
大蜜蕊() 11:17:09
是的
大菠萝() 11:17:26
。。。。
大蜜蕊() 11:18:03
当然了,因为我们的业务就是对
中等数量级的数据进行处理!

如果是小系统,数据量少,完全没必要N多设计的
大蜜蕊() 11:20:36
这两年一直想设计一个完全满足CAP的底层,看了NOSql才知道,根本不可能
大菠萝() 11:20:47
面向对象语言难道本来不就应该更注重业务吗?
如果是小系统,变化不大,用面向对象语言很浪费,还麻烦。大蜜蕊用的是面向对象语言吧?
大蜜蕊() 11:22:48

大蜜蕊() 11:23:39
一直用java的ssh
大蜜蕊() 11:23:47
现在很烦躁用h
大菠萝() 11:24:26
服务器不错哦,如果不是windows系统会更耀眼
大蜜蕊() 11:25:09
我是力推linux的
大菠萝() 11:25:33
看来你们领导很死板啊
大蜜蕊() 11:25:56
吃饭先
Stone() 11:44:22
linux
大蜜蕊() 11:45:34
大菠萝()  11:20:47
面向对象语言难道本来不就应该更注重业务吗?
如果是小系统,变化不大,用面向对象语言很浪费,还麻烦。大蜜蕊用的是面向对象语言吧?

我的观点是——设计模式才是隐藏在背后的本源力量
“业务过程”——这个才应该被设计,而不是设计对象,对象只是业务过程的静态化!
探索“业务”的过程,就会形成和发现“设计”背后的模式
分享到:
评论
2 楼 skzr.org 2010-11-11  
专有的意思就是:只能在你的这个项目中使用,放到其他地方用不了

总结出内在的模式意思是:专有的实现思路和一些经验可以传递到另一个项目中,从而让系统得到发展和升华
1 楼 skzr.org 2010-11-11  
蜜蕊()  12:03:23
面向对象的设计——重点不在设计对象,重点在设计“业务过程”
海量数据管理——必然要适合“业务”,不再单纯的增删改查,直白点就是专有数据管理系统!

专有数据管理系统——设计过程中必然可以摸索总结出内在的“模式”

有人参与管理的业务就没有通用的东西!

Stone说的他们设计的那个服务

不要期望它解决所有的问题,只要解决大部分问题就可以了
剩下的就会体现智慧的火花!

相关推荐

    领域驱动设计与模式实践.pdf

    这些著作讨论实体、值对象、服务等DDD的主要内容,或者谈论通用语言、界定的上下文(Bounded Context)和防护层(Anti-Corruption Layer)这些的概念。 本文旨在从实践的角度探讨领域建模和设计,涉及如何着手处理...

    当我们谈论框架时,我们在谈论什么?.pdf

    当我们谈论框架时,我们实际上在讨论的是软件框架,特别是针对深度学习领域的框架。这些框架是构建、训练和部署机器学习模型的基础,它们提供了一个结构化的环境,让开发者能够更高效地实现复杂的算法,而不必从零...

    2-0+当我们谈论框架时,我们在谈论什么?.pdf

    当我们谈论框架时,我们实际上在讨论的是用于构建和运行机器学习(ML)和深度学习(DL)模型的软件基础设施。这些框架提供了从数据预处理、模型训练到部署的一系列工具和功能,使得开发者和研究人员能够更高效地进行...

    c++服务程序代码

    当我们谈论"C++服务程序代码"时,我们通常是指使用C++来编写的服务程序,这些程序可以在后台运行,作为操作系统的一部分,提供持续的功能和服务。下面将详细讨论C++服务程序的创建、安装和服务控制。 1. **服务程序...

    我们在谈论魔术时还在谈论什么?

    1. OCR技术(光学字符识别):文件中提到了“由于技术原因,导致会有个别字识别错误或者漏识别的情况”,这里指的就是OCR技术在处理扫描文档时可能出现的错误。OCR技术是一种将图像数据转换成可编辑和可搜索的文本...

    设计师的成功之路(二)经验交流.pdf

    【设计师的成功之路(二)经验交流】 在设计领域,成为一名成功的设计师不仅关乎技术能力,更涉及到广泛的知识储备、...通过不断提升这些方面,设计师可以更好地服务于客户,实现设计的价值,并在职业生涯中取得成功。

    Jquery后台管理界面设计

    当我们谈论"Jquery后台管理界面设计"时,我们主要是指利用jQuery来创建高效、功能丰富的后台管理系统用户界面。在这个主题下,我们将探讨几个关键的知识点,包括jQuery的基本用法、UI组件、Ajax交互以及响应式设计。...

    一个得到SQL服务器名称的类

    当我们谈论获取SQL服务器名称时,我们通常是指这些实例的名称。 要实现这个功能,通常会使用.NET Framework中的System.Data.SqlClient命名空间,它提供了丰富的类和方法来与SQL Server进行交互。在这个描述中提到的...

    最好的ftp服务器

    当我们谈论“最好的FTP服务器”时,我们通常关注的是其易用性、稳定性和安全性。 FTP服务器软件的选择取决于多种因素,包括服务器的资源限制、用户需求以及管理复杂性。一个简洁实用的FTP服务器可能具有以下特点: ...

    当我们谈论WebApp - Openparty

    在WebApp的设计和开发过程中,需要考虑到离线(Offline)功能的支持。考虑到网络条件的不稳定性,WebApp应当能够在没有网络连接的情况下继续工作。这意味着需要在本地设备上缓存数据和资源,并且具备相应的离线数据...

    LyricsKingReactNative歌词搜索App用Expo构建采用AdobeXD设计

    Expo是React Native的一个重要扩展,它提供了一整套开箱即用的服务和工具,包括模拟器、打包服务、推送通知等。在"Lyrics King"的开发过程中,Expo简化了环境配置和设备测试,使得开发者无需手动配置每个平台的原生...

    框架 使用java做网页设计界面

    当我们谈论“使用Java做网页设计界面”时,实际上是指利用Java技术来构建Web应用程序的前端部分,这通常涉及到JavaFX、Swing或者现代的JavaScript库如React或Vue.js,通过Java的后端服务进行数据交互。 **JavaFX** ...

    Python-谈论Python的PyramidWeb应用程序启动器

    7. **RESTful API支持**:Pyramid的API设计使得创建RESTful服务变得简单,适合构建现代Web应用。 **使用Cookiecutter-Pyramid-Talk-Project-Starter** `cookiecutter-pyramid-talk-python-starter-master`是一个...

    一文详谈架构设计.docx

    当我们谈论架构时,我们需要理解以下几个关键概念:系统与子系统、模块与组件、框架与架构。 1. 系统与子系统: - 系统是由相互关联的个体组成的,它们按照特定规则协同工作,共同创造出个体无法单独实现的功能。...

    行业文档-设计装置-一种包装用纸箱.zip

    当我们谈论"一种包装用纸箱"的设计时,这通常与生产流程优化、物料处理、包装自动化等相关。以下是一些关于这个主题的重要知识点: 1. **包装设计**:包装设计不仅仅是美学的体现,更重要的是保护产品、方便运输和...

    高性能高并发服务器架构

    大型网站的架构设计问题通常涉及服务化、微服务、容器化等,将复杂应用拆分为多个独立的服务,每个服务都可以独立部署、扩展,以应对不断变化的业务需求。容器技术如Docker和Kubernetes提供了一种标准化的服务部署和...

    企业安全建设 丨 当我们在谈论推特安全事件时,我们在谈论什么?.pdf

    1.APT(高级持续性威胁):APT是黑客为了持续窃取信息而进行的、目标明确的、高度复杂且隐蔽的网络攻击。攻击者往往经过长时间的筹划,选取特定目标,通过多种手段逐步渗透系统。在推特事件中,员工可能受到了钓鱼...

    Visual C#.NET中文版Web服务开发基础

    当我们谈论Visual C#.NET中文版Web服务开发基础时,这通常涉及到使用Microsoft的.NET框架,特别是C#编程语言来构建和消费Web服务。下面将详细介绍这个主题的一些关键知识点。 1. **C#编程语言**: C#是微软开发的一...

    php服务器接口框架

    1. **路由(Routing)**:定义API的URL结构,根据不同的请求方法(GET、POST、PUT、DELETE等)映射到相应的处理函数。 2. **请求处理(Request Handling)**:接收并解析客户端发送的数据,进行验证和错误处理。 3. **...

    服务优化学习

    当我们谈论“服务优化学习”时,通常涉及多个层面的技术知识和实践策略。以下将详细阐述服务优化的一些关键点。 首先,我们要理解服务优化的目标是提高服务响应速度、降低资源消耗、提升系统稳定性和可扩展性。这...

Global site tag (gtag.js) - Google Analytics